#P16126. [USTCPC 2026] Note Offset Adjustment
[USTCPC 2026] Note Offset Adjustment
题目背景
“双星很难吗?我rks12.66。”
众所周知,Phigros 需要校准谱面延时。在遥远又可能不遥远的未来,克露丝卡尔酱发明一个机器能够自动玩 Phigros,但是她竟然忘记了机器设置的谱面延时是多少?
因此,她获得了全部 Bad 的好成绩,并生气地离开了实验室。你来到了实验室,看到了一片狼藉的机器。为了帮助克露丝卡尔酱,你决定偷偷地测量出机器的谱面延时?
题目描述
这是一道交互题。
交互库有一个整数 ,你每次可以询问一个整数 ,然后交互库会根据以下情况返回答案:
Perfect:。Good:。Bad:。Miss:。
你需要在 次询问内返回正确的结果 。
交互方式
本题有多组测试数据。
第一行,输入数据组数 。
对于每组数据:
当你需要进行询问时:
-
以
? y的格式输出并清空缓冲区。你需要保证 ,且目前询问次数(包含该次询问)不超过 次,否则交互库会出现未知错误。 -
之后,请输入一个字符串 表示获取的字符串信息。
当你已经获得答案后,以 ! x 的格式输出并清空缓冲区。
当处理完所有数据组数后,请立刻终止程序。
1
Perfect
Good
Miss
? 0
? 100
? 200
! 0
提示
当答案为 时,分别询问 的结果如样例所示。
如何清空缓冲区:
- 在 C 和 C++ 中,使用
fflush(stdout)(如果你使用 )或cout.flush()(如果你使用 )。 - 在 Python 中,使用
stdout.flush()。 - 特别地,在 C++ 中,使用
cout<<endl会自动清空缓冲区。
如果你仍然对于交互题有疑问,下面会展示一份样例代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
int main(){
int t; cin>>t;
while(t--){
cout<<"? "<<0<<endl;
string s;cin>>s;
printf("0\n"); fflush(stdout);
}
return 0;
}
如果你无事可干,可以尝试如何在 次询问内解决该问题。