CF1155E.Guess the Root
普及/提高-
通过率:0%
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.
输入格式
无
输出格式
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.
输入输出样例
输入#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 .