deforces的比赛过程也非常有趣。

    每场比赛,参赛成员每40人左右会进入同一个房间,同时开始读题、答题。

    deforces赛制的题目会有两套数据,一套称为预测试数据,另一套称为系统测试数据。

    在比赛进行期间,如果选手写完答案,并且对自己的答案足够自信的话,就可以在比赛结束之前提前提交。

    比赛进行期间提交的答案,将会用预测试数据测评——如果通过,则会显示预测试通过;如果没有通过,将会显示错误编号和错误类型,并且还会被罚扣50分。

    但是,预测试通过,并不代表提交的代码就完全没有问题了。

    当一道题目通过预测试后,就可以单击题目列表中那一道题目后面的“锁”的符号——把这道题目锁定。

    当一道题目被锁定后,这道题就不能再次提交了。

    但是锁题后,选手就可以查看同一个房间中其它也锁题了的竞争者的本题代码!

    如果能找到其他人代码中的错误,就可以向对方发起攻击!

    具体做的做法,就是提交一组测试数据,导致对方的代码错误,比如说ansr。

    一次成功的攻击,就可以获得100分!

    不过,如果发动攻击却失败了,就要倒扣50分。

    这样可以攻击对手,让对手扣分、给自己加分的功能,当然非常有趣、非常刺激。

    但是,锁定了题目不能解锁,也不能再提交。

    也就是说,攻击别人的同时,自己也有被攻击的风险。如果自己的程序中有错误,那么在攻击别人时,别人也都能来攻击你。

    而这时,已经锁定的题目是无法修改的。如果被选手攻击了,即使意识到自己哪里出错了,也没办法再改,只能心痛地看着自己被攻击扣分,-50,-50,-50……

    在比赛时间结束后,还会有系统测试。

    就是将已经通过预测试的程度,再测试一套数据。通过系统测试的程序,才算真正答题正确,得到最终分数,否则不得分。

    比赛规则如此的情况下,绝大部分选手锁题都会非常谨慎,要对自己的程序十分自信,才会按下“锁”这个按钮。