1

机器人评委烂透了!只有在删除以下代码块后,我才被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 秒!

  1. 它与被替换的代码有什么关系?
  2. 有没有关于UVA机器人判断与其他编译器有何不同的文件?以便我知道在线法官上有哪些功能/方法。

我使用 MinGW。

4

1 回答 1

5

断言不能创建无限循环。

我的猜测是,当断言触发时,操作系统会显示一个即时调试提示(“程序中发生错误...... [调试] [取消]”)。(抱歉,我目前没有运行 Windows,所以无法检查实际措辞)。由于没有人在那里按下任何一个按钮,并且在有人这样做之前该过程不会终止,因此机器人认为程序仍在运行。

我认为这是UVA设置中的错误。必须禁用即时调试。

于 2010-10-02T10:14:34.943 回答