参考:http://codeforces.com/blog/entry/45307
在编程竞赛中(包括CodeForces)有时你会看到交互式问题
在这种类型的问题中,对于你编程的输入数据,或许不被预先决定,而是由你的解法专门构造
Jury 写了一个特殊的程序 -- 交互器,它的输出被转变为你的解法的输入,并且你的程序的输出被发送到交互器的输入
换句话说,你的解法和交互器交换数据,并且我决定输出什么基于 “交流的历史”
当你写一个交互式问题的解法,记住 “如果你要输出一些数据,也许这些数据首先被放到内部缓冲区,不被直接转移到交互器” 是重要的
为了防止这种情况,每次你输出一些数据,必须用特殊的 flush 操作
交互式问题有一些特征
- 交互式问题中的输入/输出运行的要比平常问题慢,所以建议使用 scanf / printf
- 通常,人工测试交互式问题的解法比较困难,因为测试的时候参与者需要担任交互器的角色
- “自定义调用” 标签不了解问题的交互器,所以你不能充分的测试你的解法
- CodeForces的比赛中有时候会出现交互式的问题,Hack 数据的格式将在问题的声明中给出
(感觉这波翻译用处不是很大。。。而且菜的抠脚
例题: