QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#882507#9734. Identify ChordSai_tqwqWA 0ms3584kbC++141018b2025-02-05 08:42:512025-02-05 08:42:52

Judging History

This is the latest submission verdict.

  • [2025-02-05 08:42:52]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3584kb
  • [2025-02-05 08:42:51]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
int cas,n;
int query(int u,int v,int x=0){cout<<"? "<<u+1<<' '<<v+1<<endl;cin>>x;return x;}
void answer(int u,int v,int x=0){cout<<"! "<<u+1<<' '<<v+1<<endl;cin>>x;}
int ad(int x,int f=1){return (x+f)%n;}
int dec(int x,int f=1){return (x+n-f)%n;}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>cas;
	while(cas--){
		cin>>n;
		int u=0,v=n>>1,x;
		for(int op=0;(x=query(u,v))==n>>1;op^=1)
			if(n&1){if(op)v++;else u++;}else u++,v++;
		int lx=query(dec(u),v),rx=query(ad(u),v),w,d;
		if(lx>=x&&rx>=x)w=u,d=x-1;
		else if(lx<x){
			int l=0,r=n>>1;
			while(r>l){
				int mid=l+r+1>>1;
				if(query(dec(u,mid),v)==x-mid)l=mid;
				else r=mid-1;
			}
			w=dec(u,l);d=x-l-1;
		}else{
			int l=0,r=n>>1;
			while(r>l){
				int mid=l+r+1>>1;
				if(query(ad(u,mid),v)==x-mid)l=mid;
				else r=mid-1;
			}
			w=ad(u,l);d=x-l-1;
		}
		if(query(w,ad(v,d))==1)answer(w,ad(v,d));
		else answer(w,dec(v,d));
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3584kb

input:

2
6
2
2
1
1
1
1
1
4
1
1
1
1
1

output:

? 1 4
? 6 4
? 2 4
? 3 4
? 2 4
? 2 4
! 2 4
? 1 3
? 4 3
? 2 3
? 1 3
! 1 3

result:

ok ok (2 test cases)

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3584kb

input:

1000
15
5
6
4
1
1
2
1
1
19
5
6
4
4
3
4
1
1
17
5
6
4
4
3
4
1
1
15
6
7
6
3
1
14
5
6
4
3
5
4
5
1
15
3
4
2
3
3
2
1
1
17
8
7
8
6
3
1
0
1
1
-1

output:

? 1 8
? 15 8
? 2 8
? 5 8
? 7 8
? 6 8
? 5 8
! 5 8
? 1 10
? 19 10
? 2 10
? 6 10
? 3 10
? 4 10
? 3 12
! 3 12
? 1 9
? 17 9
? 2 9
? 5 9
? 3 9
? 4 9
? 3 11
! 3 11
? 1 8
? 15 8
? 2 8
? 1 13
! 1 3
? 1 8
? 14 8
? 2 8
? 5 8
? 3 8
? 2 8
? 2 11
! 2 5
? 1 8
? 15 8
? 2 8
? 5 8
? 3 8
? 2 8
? 2 9
! 2 9
? 1 9
? 2 9
...

result:

wrong answer Wrong answer n=17, actual=5-14, guessed=9-8 (test case 7)