QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#553760#8939. Permutationucup-team191#WA 90ms1652kbC++231.0kb2024-09-08 19:39:582024-09-08 19:39:59

Judging History

This is the latest submission verdict.

  • [2024-09-08 19:39:59]
  • Judged
  • Verdict: WA
  • Time: 90ms
  • Memory: 1652kb
  • [2024-09-08 19:39:58]
  • Submitted

answer

#include <cstdio>

int ask(int l, int r) {
	printf("? %d %d\n", l, r);
	fflush(stdout);
	int x; scanf("%d", &x);
	return x;
}

int solve(int l, int r, int x = -1) {
	if(x == -1 && l != r) x = ask(l, r);
	if(l == r) return l;
	if(l == r - 1) return l + r - x;
	if(l == r - 2) {
		if(x == l) return solve(l + 1, r);
		if(x == r) return solve(l, r - 1);
		return (ask(l, x) == x) ? l : r;
	}
	int mid = (l + r) / 2;
	if(x < mid && (r - l + 1) % 2 == 1) mid--;
	if(x <= mid) {
		int x_l = ask(l, mid);
		if(x_l == x) return solve(l, mid, x);
		int mid2 = (r + mid + 1) / 2;
		if((r - mid) % 2 == 1) mid2--;
		if(ask(x, mid2) == x) return solve(mid + 1, mid2);
		else return solve(mid2 + 1, r);
	} else {
		int x_r = ask(mid + 1, r);
		if(x_r == x) return solve(mid + 1, r, x);
		int mid2 = (l + mid) / 2;
		if(ask(mid2 + 1, x) == x) return solve(mid2 + 1, mid);
		else return solve(l, mid2);
	}
}

int main() {
	int T; scanf("%d", &T);
	for(;T--;) {
		int n; scanf("%d", &n);
		printf("! %d\n", solve(1, n));
		fflush(stdout);
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
5
3
2
3
6
6
5
3
1
4
3
3

output:

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

result:

ok Correct (3 test cases)

Test #2:

score: 0
Accepted
time: 69ms
memory: 1640kb

input:

10000
10
2
2
1
3
5
10
10
10
9
8
7
10
5
1
5
6
10
4
4
5
4
10
10
6
6
3
2
10
3
3
3
2
10
1
5
5
9
9
10
1
3
1
6
10
2
4
4
9
8
10
3
3
1
3
10
4
1
7
8
9
10
8
7
7
1
2
10
4
1
5
9
8
10
7
8
7
4
10
5
1
7
8
10
10
8
8
6
9
10
2
1
2
7
10
6
6
7
8
10
10
1
3
1
6
10
7
9
5
1
2
10
7
8
4
1
2
10
3
4
4
10
8
10
4
4
4
10
8
7
7
2
...

output:

? 1 10
? 1 5
? 1 2
? 2 3
? 4 5
! 4
? 1 10
? 6 10
? 9 10
? 8 10
? 6 7
! 6
? 1 10
? 1 5
? 5 7
? 6 7
! 7
? 1 10
? 1 5
? 4 5
? 3 4
! 3
? 1 10
? 6 10
? 4 10
? 1 3
? 1 2
! 1
? 1 10
? 1 5
? 1 3
? 1 2
! 1
? 1 10
? 1 5
? 1 7
? 8 10
? 8 9
! 8
? 1 10
? 1 5
? 1 7
? 6 7
! 7
? 1 10
? 1 5
? 2 7
? 8 10
? 8 9
! 10
?...

result:

ok Correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 25ms
memory: 1604kb

input:

10000
3
1
2
11
5
3
5
8
7
2
2
19
3
4
3
13
14
12
11
7
5
7
5
4
3
3
1
19
6
6
7
5
1
2
2
2
15
11
11
11
10
14
1
1
3
1
5
16
4
4
1
4
5
3
3
2
19
13
17
6
5
4
5
2
2
4
1
2
3
7
2
2
2
3
2
2
17
1
1
2
1
6
14
9
9
9
8
20
9
3
9
13
13
11
6
4
4
5
18
7
7
7
6
7
8
8
6
8
3
8
6
7
6
3
16
10
10
10
10
6
1
3
1
10
3
3
1
4
2
1
10
1...

output:

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

result:

ok Correct (10000 test cases)

Test #4:

score: 0
Accepted
time: 89ms
memory: 1612kb

input:

10000
47
23
23
19
11
2
1
2
14
8
8
8
9
25
6
12
6
13
13
15
7
4
2
4
9
2
2
2
27
27
27
27
26
24
23
21
7
7
6
7
5
43
41
37
21
7
8
5
3
1
22
6
4
14
20
20
21
34
29
25
29
17
17
16
17
42
20
20
20
20
21
19
17
47
21
21
21
19
21
16
17
41
25
25
30
30
39
39
38
19
17
17
16
16
12
12
21
14
14
14
14
13
27
2
1
2
17
15
18...

output:

? 1 47
? 1 23
? 13 23
? 7 23
? 1 6
? 1 3
? 2 4
! 4
? 1 14
? 8 14
? 8 10
? 9 10
! 10
? 1 25
? 1 12
? 6 18
? 13 18
? 13 15
? 14 15
! 14
? 1 7
? 1 4
? 4 5
! 5
? 1 9
? 1 4
? 1 2
! 1
? 1 27
? 15 27
? 22 27
? 25 27
? 24 27
? 22 23
! 22
? 1 21
? 1 10
? 6 10
? 4 7
? 4 5
! 4
? 1 43
? 23 43
? 12 41
? 1 11
? 7...

result:

ok Correct (10000 test cases)

Test #5:

score: 0
Accepted
time: 67ms
memory: 1580kb

input:

10000
100
47
5
47
61
53
68
71
71
69
9
2
2
1
2
53
46
35
15
6
6
6
6
33
3
16
16
31
31
30
32
82
60
42
60
29
29
28
29
26
88
39
8
39
59
59
59
60
59
71
24
29
29
59
59
59
60
60
92
52
52
56
70
88
88
89
88
24
11
11
9
11
5
5
66
51
51
66
45
39
39
40
39
92
43
43
38
43
20
21
20
17
16
48
1
1
1
5
1
9
7
85
28
28
28
...

output:

? 1 100
? 1 50
? 47 75
? 51 75
? 51 62
? 61 68
? 69 75
? 69 71
? 69 70
! 70
? 1 9
? 1 4
? 1 2
? 2 3
! 3
? 1 53
? 28 53
? 15 46
? 1 14
? 1 7
? 5 7
? 5 6
! 5
? 1 33
? 1 16
? 3 24
? 25 33
? 30 33
? 30 31
? 31 32
! 33
? 1 82
? 42 82
? 22 60
? 22 41
? 22 31
? 27 31
? 25 29
? 25 26
! 25
? 1 88
? 1 44
? 39...

result:

ok Correct (10000 test cases)

Test #6:

score: 0
Accepted
time: 82ms
memory: 1636kb

input:

10000
50
10
10
10
7
10
6
5
50
11
11
9
18
23
23
25
50
44
40
44
20
20
21
21
25
50
24
14
29
45
45
45
46
50
50
50
50
50
49
49
45
50
36
39
23
12
12
11
11
8
50
29
36
20
13
12
6
3
3
50
30
42
22
1
1
1
2
50
25
15
25
30
30
31
30
50
18
20
20
49
47
47
39
39
50
9
9
9
9
7
10
11
50
26
43
26
17
17
19
16
15
50
16
16...

output:

? 1 50
? 1 25
? 1 12
? 7 12
? 4 10
? 4 6
? 4 5
! 4
? 1 50
? 1 25
? 1 12
? 11 18
? 19 25
? 23 25
? 24 25
! 24
? 1 50
? 26 50
? 14 44
? 14 25
? 20 25
? 20 22
? 20 23
? 24 25
! 24
? 1 50
? 1 25
? 24 37
? 38 50
? 45 50
? 45 47
? 46 47
! 47
? 1 50
? 26 50
? 39 50
? 45 50
? 48 50
? 47 50
? 45 46
! 46
? 1 ...

result:

ok Correct (10000 test cases)

Test #7:

score: 0
Accepted
time: 90ms
memory: 1608kb

input:

10000
100
76
78
35
5
5
3
9
11
11
100
29
29
50
29
20
20
22
22
24
100
64
64
69
64
86
86
87
84
83
100
51
51
57
51
79
81
79
84
83
100
44
44
50
42
13
13
12
12
9
100
64
92
64
41
44
41
33
35
35
37
100
93
56
93
40
40
44
40
45
47
100
37
2
37
57
54
60
74
75
73
70
100
76
76
76
76
80
76
83
82
100
32
32
32
31
41...

output:

? 1 100
? 51 100
? 26 76
? 1 25
? 1 12
? 1 6
? 5 9
? 10 12
? 10 11
! 10
? 1 100
? 1 50
? 26 50
? 14 29
? 14 25
? 20 25
? 20 22
? 20 23
? 24 25
! 25
? 1 100
? 51 100
? 51 75
? 64 87
? 76 87
? 82 87
? 85 87
? 84 86
? 82 83
! 82
? 1 100
? 51 100
? 51 75
? 51 87
? 76 87
? 76 81
? 79 84
? 82 84
? 82 83
!...

result:

ok Correct (10000 test cases)

Test #8:

score: 0
Accepted
time: 10ms
memory: 1544kb

input:

1000
1000
475
426
728
896
974
896
867
867
869
858
847
847
848
847
1000
278
17
278
598
534
598
679
665
679
652
655
647
645
645
1000
75
128
75
607
604
644
713
695
732
749
745
749
742
741
742
1000
239
239
45
350
432
429
432
442
451
458
462
462
461
463
1000
978
978
978
978
997
978
914
920
914
923
923
92...

output:

? 1 1000
? 1 500
? 475 750
? 751 1000
? 876 1000
? 814 896
? 814 875
? 845 875
? 861 875
? 853 867
? 845 852
? 845 848
? 847 848
? 846 847
! 846
? 1 1000
? 1 500
? 278 750
? 501 750
? 501 625
? 598 687
? 626 687
? 657 687
? 642 679
? 642 656
? 650 656
? 646 652
? 642 645
? 644 645
! 644
? 1 1000
? 1...

result:

ok Correct (1000 test cases)

Test #9:

score: 0
Accepted
time: 10ms
memory: 1608kb

input:

1017
272
246
186
246
111
110
110
73
73
73
73
114
105
91
91
2
2
2
2
2
910
173
173
173
127
127
14
28
29
56
51
56
48
47
48
726
229
229
201
201
63
71
63
28
28
28
27
27
24
861
315
104
315
491
528
551
632
641
614
593
593
594
593
596
1984
133
133
406
133
571
512
571
673
682
673
650
650
651
650
647
1145
988...

output:

? 1 272
? 137 272
? 69 246
? 69 136
? 103 136
? 86 111
? 69 85
? 69 76
? 73 76
? 73 74
! 74
? 1 114
? 58 114
? 30 105
? 1 29
? 1 14
? 1 7
? 1 3
? 1 2
! 1
? 1 910
? 1 455
? 1 227
? 115 227
? 58 173
? 1 57
? 1 28
? 14 42
? 43 57
? 51 57
? 47 56
? 47 50
? 47 48
? 48 49
! 49
? 1 726
? 1 363
? 183 363
? ...

result:

ok Correct (1017 test cases)

Test #10:

score: 0
Accepted
time: 3ms
memory: 1580kb

input:

10
100000
3893
3893
3505
30673
43582
43582
43582
43582
43582
43470
43582
43242
43197
43242
43289
43298
43279
43268
43263
43268
43270
43269
100000
32066
19090
54928
88585
88585
88585
89959
88585
91599
91474
91599
91257
91257
91225
91257
91325
91312
91339
91348
91349
91348
91351
91353
100000
50288
867...

output:

? 1 100000
? 1 50000
? 1 25000
? 3893 37500
? 37501 50000
? 37501 43750
? 40626 43750
? 42189 43750
? 42970 43750
? 43361 43750
? 43166 43582
? 43166 43360
? 43166 43262
? 43242 43311
? 43263 43311
? 43288 43311
? 43276 43289
? 43263 43275
? 43263 43268
? 43268 43271
? 43269 43271
? 43269 43270
! 43...

result:

ok Correct (10 test cases)

Test #11:

score: 0
Accepted
time: 3ms
memory: 1532kb

input:

21
84335
47947
60969
22445
9296
1509
11772
20931
19830
20931
17510
17510
17606
17510
17352
17352
17346
17352
17320
17320
17320
17318
17321
159962
128177
145530
128177
54814
54814
59035
49869
40850
42103
40850
43214
43214
43231
43550
43675
43675
43675
43670
43689
43695
43695
43696
43694
43692
19298
1...

output:

? 1 84335
? 42169 84335
? 21085 47947
? 1 21084
? 1 10542
? 9296 15813
? 15814 21084
? 18450 21084
? 17132 20931
? 17132 18449
? 17132 17790
? 17462 17790
? 17297 17510
? 17297 17461
? 17297 17378
? 17338 17378
? 17318 17352
? 17318 17337
? 17318 17327
? 17318 17322
? 17318 17320
? 17320 17321
! 173...

result:

ok Correct (21 test cases)

Test #12:

score: 0
Accepted
time: 0ms
memory: 1536kb

input:

1
1000000
641602
641602
561698
641602
783270
783270
783270
783270
786055
786055
794273
794682
794682
796734
796734
796734
796686
796788
796850
796850
796851
796850
796864
796864
796863
796864

output:

? 1 1000000
? 500001 1000000
? 500001 750000
? 641602 875000
? 750001 875000
? 750001 812500
? 781251 812500
? 781251 796875
? 781251 789062
? 783270 792968
? 792969 796875
? 792969 794921
? 794273 795898
? 795899 796875
? 796388 796875
? 796632 796875
? 796632 796753
? 796734 796814
? 796815 796875...

result:

ok Correct (1 test case)

Test #13:

score: 0
Accepted
time: 3ms
memory: 1652kb

input:

16
232936
229707
229707
229707
229707
229707
231039
229707
223556
223533
224031
225261
225261
225261
225290
225290
225375
225395
225407
225417
225419
225417
225425
225425
8676
6498
6498
6498
5867
4978
4731
4731
4731
4731
4717
4717
4684
4681
4690
4692
4691
4693
4695
221085
172303
209705
142841
20545
...

output:

? 1 232936
? 116469 232936
? 174703 232936
? 203820 232936
? 218379 232936
? 225658 232936
? 222019 229707
? 222019 225657
? 222019 223837
? 223556 224747
? 224748 225657
? 225203 225657
? 225203 225429
? 225203 225315
? 225261 225372
? 225373 225429
? 225373 225400
? 225375 225414
? 225415 225429
?...

result:

ok Correct (16 test cases)

Test #14:

score: 0
Accepted
time: 30ms
memory: 1592kb

input:

1994
667
666
667
665
167
166
166
42
41
41
11
10
10
3
2
374
373
374
372
94
93
93
24
23
23
6
5
5
2
488
486
488
485
122
121
121
31
30
30
8
7
7
2
922
921
922
920
231
230
230
58
57
57
15
14
14
4
3
3
639
637
639
636
160
159
159
40
39
39
10
9
9
3
2
353
350
353
349
89
88
88
23
22
22
6
5
5
2
71
66
71
65
18
1...

output:

? 1 667
? 335 667
? 168 666
? 1 167
? 85 167
? 43 167
? 1 42
? 22 42
? 12 42
? 1 11
? 7 11
? 4 11
? 1 3
? 1 2
! 1
? 1 374
? 188 374
? 95 373
? 1 94
? 48 94
? 25 94
? 1 24
? 13 24
? 7 24
? 1 6
? 4 6
? 3 6
? 1 2
! 1
? 1 488
? 245 488
? 123 486
? 1 122
? 62 122
? 32 122
? 1 31
? 17 31
? 9 31
? 1 8
? 5 ...

result:

ok Correct (1994 test cases)

Test #15:

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

input:

18
153667
153667
153666
153666
38417
38416
38416
9605
9604
9604
2402
2401
2401
601
600
600
151
150
150
38
37
37
10
9
9
3

output:

? 1 153667
? 76835 153667
? 38418 153667
? 1 38417
? 19210 38417
? 9606 38417
? 1 9605
? 4804 9605
? 2403 9605
? 1 2402
? 1202 2402
? 602 2402
? 1 601
? 302 601
? 152 601
? 1 151
? 77 151
? 39 151
? 1 38
? 20 38
? 11 38
? 1 10
? 6 10
? 4 10
? 1 3
? 1 2

result:

wrong answer Too long queries, n = 153667, now length 461003 (test case 1)