You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么代码在本地IDE运行正常,CodeChef IDE报SIGCONT错误?

问题分析

代码功能验证

  • 你的代码逻辑本身没有问题,完全符合题目的要求:
    • 正确计算了每个单词首次输入的时间,左右手同区按键加4、异区加2,首字母固定2秒
    • 重复输入的单词取首次计算时间的一半累加,逻辑正确
    • 用map缓存已出现单词的耗时,实现也没问题

无限输出0的原因

  • 根本原因是CodeChef IDE运行时未提供有效输入:
    • 当std::cin >> t读取输入失败时(比如没有输入、输入格式错误、输入流结束),C++11之前的版本不会初始化变量t,值是不确定的。如果t恰好是负数,while(t--)就会变成死循环
    • 后续的std::cin >> n同样读取失败,n如果被初始化为0,内层循环不会执行,count保持初始值0,每次外层循环都会输出0,就出现了你看到的无限输出0的现象

SIGCONT错误的原因

  • SIGCONT本身不是程序错误,是操作系统发给暂停进程的继续执行信号:
    • CodeChef IDE的运行环境检测到你的程序长时间等待输入,会先将进程暂停,尝试恢复时就会发送SIGCONT信号,IDE默认会将这个信号标记为运行时错误抛出,本质还是程序异常等待输入导致的

解决方法

  • 如果你要在CodeChef IDE测试代码,务必在IDE的输入框中填写符合题目格式的测试用例再运行
  • 可以在输入后增加校验逻辑避免死循环,比如:
std::cin >> t;
if (!std::cin || t <=0) return 0;
  • 不需要在意IDE运行的SIGCONT提示,直接将代码提交到题目评判系统即可正常判题,正式判题环境不会触发这个信号

内容的提问来源于stack exchange,提问作者Dishant Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:06:01