机器人评判吮吸!只有在删除以下代码块之后,我才被UVA接受:
cin >> ntc;
/* extract newline from previous read */
char dummy(0);
cin.get(dummy);
assert( '\n'==dummy );
/* newline extract completes */
替换为:
cin >> ntc;
getline( cin, inputN ); /* extract remaining '\n' */
在替换之前,UVA的光荣机器人法官将作出裁决:
您的提交....失败,判决超出时限。
您的程序使用的CPU时间超过了此问题所允许的时间。这意味着您的算法速度不够快或进入无限循环。
更换后程序需要0.052秒才能运行!
我使用MinGW。
答案 0 :(得分:5)
断言无法创建无限循环。
我的猜测是,当断言触发时,操作系统会显示一个即时调试提示(“程序中发生错误... [调试] [取消]”)。 (对不起,我现在没有运行Windows,因此无法检查实际的措辞)。由于没有人按下任何一个按钮,并且该过程在某人之前没有终止,机器人认为该程序仍在运行。
我认为这是UVA设置中的错误。必须禁用即时调试。