QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#580351#8939. PermutationForever_Young#WA 53ms3868kbC++141013b2024-09-21 21:20:162024-09-21 21:20:16

Judging History

This is the latest submission verdict.

  • [2024-09-21 21:20:16]
  • Judged
  • Verdict: WA
  • Time: 53ms
  • Memory: 3868kb
  • [2024-09-21 21:20:16]
  • Submitted

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)