CF1155E.Guess the Root
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Jury picked a polynomial f(x)=a0+a1⋅x+a2⋅x2+⋯+ak⋅xk. k≤10 and all ai are integer numbers and 0≤ai<106+3. It's guaranteed that there is at least one i such that ai>0.
Now jury wants you to find such an integer x0 that f(x0)≡0mod(106+3) or report that there is not such x0.
You can ask no more than 50 queries: you ask value xq and jury tells you value f(xq)mod(106+3).
Note that printing the answer doesn't count as a query.
Interaction
To ask a question, print "? xq" (0≤xq<106+3). The judge will respond with a single integer f(xq)mod(106+3). If you ever get a result of −1 (because you printed an invalid query), exit immediately to avoid getting other verdicts.
After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:
- fflush(stdout) or cout.flush() in C++;
- System.out.flush() in Java;
- flush(output) in Pascal;
- stdout.flush() in Python;
- see documentation for other languages.
When you are ready to answer, print "! x0" where x0 is the answer or −1 if there is no such x0.
You can ask at most 50 questions per test case.
Hack Format
To hack, use the following format.
The only line should contain 11 integers a0,a1,…,a10 (0≤ai<106+3, 0≤i≤10maxai>0) — corresponding coefficients of the polynomial.
评委选定一个多项式 f(x)=a0+a1⋅x+a2⋅x2+⋯+ak⋅xk,其中 k≤10,所有系数 ai 均为整数且满足 0≤ai<106+3。保证至少存在一个下标 i 使得 ai>0。
现在,评委要求你找出一个整数 x0,使得 f(x0)≡0mod(106+3);若不存在这样的 x0,则需报告无解。
你最多可进行 50 次询问:每次你给出一个值 xq,评委将返回 f(xq)mod(106+3)。
注意:输出最终答案不计入询问次数。
交互方式
要提出一个问题,请输出 "? $x_q$"(其中 0≤xq<106+3)。评测系统将返回一个整数 f(xq)mod(106+3)。若你收到结果 −1(因输出了非法查询),请立即退出程序,以免获得其他错误提示。
每次输出查询后,务必输出换行符并刷新输出缓冲区;否则将得到 “Idleness limit exceeded” 判定。具体操作如下:
- C++ 中使用
fflush(stdout)或cout.flush(); - Java 中使用
System.out.flush(); - Pascal 中使用
flush(output); - Python 中使用
stdout.flush(); - 其他语言请参阅相应文档。
当你准备好回答时,请输出 "! $x_0$",其中 x0 即所求答案;若不存在满足条件的 x0,则输出 -1。
每个测试用例中最多允许 50 次询问。
Hack 格式
用于 Hack 的输入格式如下:
仅一行,包含 11 个整数 a0,a1,…,a10(满足 0≤ai<106+3,且 0≤i≤10maxai>0),表示该多项式的各项系数。
输入输出样例
输入#1
1000002 0
输出#1
? 0 ? 1 ! 1
输入#2
5 2 1
输出#2
? 2 ? 1 ? 0 ! -1
说明/提示
The polynomial in the first sample is 1000002+x2.
The polynomial in the second sample is 1+x2.
第一个样例中的多项式为 1000002+x2。
第二个样例中的多项式为 1+x2。
输入解题思路,AI测评打分。不知道怎么写?