QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#580351 | #8939. Permutation | Forever_Young# | WA | 53ms | 3868kb | C++14 | 1013b | 2024-09-21 21:20:16 | 2024-09-21 21:20:16 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int t,n;
int get(int x,int y,int z){
//printf("%d %d %d\n",x,y,z);
if (x==y) return x;
if (z==-1){
printf("? %d %d\n",x,y);
fflush(stdout);
scanf("%d",&z);
}
if (y==x+1) return x+y-z;
int mid=(x+y)/2;
if (z>mid){
mid=int(x+(y-x)*0.386);
if (mid==x) mid+=1;
printf("? %d %d\n",mid,y);
fflush(stdout);
int tmp;
scanf("%d",&tmp);
if (tmp==z) return get(mid,y,z);
return get(x,mid-1,-1);
}
else{
mid=int(y-(y-x)*0.386);
if (mid==y) mid-=1;
printf("? %d %d\n",x,mid);
fflush(stdout);
int tmp;
scanf("%d",&tmp);
if (tmp==z) return get(x,mid,z);
return get(mid+1,y,-1);
}
}
int main(){
scanf("%d",&t);
while (t--){
scanf("%d",&n);
int res=get(1,n,-1);
printf("! %d\n",res);
fflush(stdout);
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3868kb
input:
3 5 3 2 5 6 6 6 3 4 3 3 2
output:
? 1 5 ? 1 3 ? 4 5 ! 4 ? 1 6 ? 2 6 ? 3 6 ! 2 ? 1 4 ? 2 4 ? 2 3 ! 4
result:
ok Correct (3 test cases)
Test #2:
score: -100
Wrong Answer
time: 53ms
memory: 3788kb
input:
10000 10 2 2 2 1 3 10 10 10 10 7 10 5 1 10 9 10 4 4 4 4 4 10 10 6 3 2 10 3 3 3 2 10 1 5 9 9 9 10 1 3 8 8 10 2 4 9 9 8 10 3 3 3 3 2 10 4 1 7 8 9 10 8 7 1 2 10 4 1 9 9 8 10 7 7 7 7 6 10 5 1 7 8 10 10 8 8 8 6 9 10 2 2 1 5 10 6 6 4 10 10 10 1 3 8 8 10 7 9 1 2 10 7 4 1 2 10 3 4 7 8 10 10 4 4 4 3 6 10 8 7...
output:
? 1 10 ? 1 6 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 10 ? 4 10 ? 6 10 ? 7 10 ! 6 ? 1 10 ? 1 6 ? 7 10 ? 8 10 ! 7 ? 1 10 ? 1 6 ? 2 6 ? 2 4 ? 3 4 ! 3 ? 1 10 ? 4 10 ? 1 3 ? 2 3 ! 1 ? 1 10 ? 1 6 ? 1 4 ? 2 4 ! 1 ? 1 10 ? 1 6 ? 7 10 ? 8 10 ? 8 9 ! 8 ? 1 10 ? 1 6 ? 7 10 ? 7 8 ! 7 ? 1 10 ? 1 6 ? 7 10 ? 8 10 ? 8 9 ! 10 ? 1...
result:
wrong answer Too many queries , n = 10 , now_q 6 (test case 50)