这是一个交互式问题。
时间是 2033 年。Rikhail Mubinchik 意识到乌拉尔地区还有太多机构没听说过 ACM,于是他决定再次解决这个问题。到那时,这已经是一个成熟的系统,Rikhail 已经知道该怎么做了。
“我们很高兴地宣布 NEERC 乌拉尔分区资格赛的 1/16 淘汰赛!”Codeforces 上的帖子这样写道。同样的文字也出现在了乌拉尔地区所有大学、学校和幼儿园的海报上。广告宣传非常广泛,甚至影响到了虚构的大学。
现在,你代表隐形大学(Unseen University)参加竞技编程比赛。严格来说,碟形世界(Discworld)以前没有计算机。你在解决问题方面的经验几乎为 0。
好消息是:每所大学表现最好的队伍将晋级下一轮。坏消息是:队伍必须至少解决一道题才能晋级。
因此,在比赛结束前 20 分钟,你决定集中精力解决一道成功率最高的问题。题目描述中提到了一些也在参赛的蒲公英。这很奇怪,因为蒲公英不会思考。你认为这只是虚构的,不应该被它分心。问题是:“如果蒲公英在通过之前进行了 $x$ 次错误的提交,它们会晋级资格赛的主赛吗?”
你非常仔细地阅读了规则,发现 $x$ 越小,对蒲公英越有利。因此存在一个值 $B$,使得答案为否当且仅当 $B \le x$。
你编写了以下代码:
const int B = ???;
int x;
cin >> x;
if (B <= x)
cout << "NO" << endl;
else
cout << "YES" << endl;
现在剩下的唯一任务就是为常量 $B$ 选择正确的值。从样例中你知道,如果 $x = 0$,答案是 “YES”,如果 $x = R$,答案是 “NO”。但你无法得知其他任何信息。
现在你只剩下 10 分钟,而 Timus 在线评测系统允许你提交的频率不超过每 10 秒一次。因此,你最多只能进行 60 次尝试!
输入格式
首先,你的程序会接收到一个整数 $R$ ($1 \le R \le 5 \cdot 10^5$)。
然后,你的程序将接收 “评测结果”。每个判定结果要么是 “AC”,要么是 “WA X”,其中 $X$ 是你的程序未通过的第一个测试点的索引。
保证 “该问题” 的测试点不超过 $10^6$ 个。第一个测试点是 0,第二个测试点是 $R$(前两个测试点是样例)。
输出格式
你的程序可以提交带有不同 $B$ 值的 “解决方案”。为此,它应该输出这个值。该值应为不超过 $R$ 的非负整数。提交的解决方案数量不应超过 60 次,且最后一次提交的解决方案必须获得 “AC” 判定。在获得 “AC” 判定后,你的程序应立即终止。
记得在每次查询后输出换行并刷新输出。为此,你可以使用以下指令:
- C++:
fflush(stdout); - Java:
System.out.flush(); - Python:
stdout.flush(); - Pascal:
flush(output);
样例
输入 1
5 WA 1 WA 4 WA 4 WA 3 WA 6 AC
输出 1
0 1 2 5 4 3
说明
在样例中,常量 $B$ 的正确值是 3。“该问题” 中的测试点为:0, 5, 4, 2, 1, 3。