QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#553797#8939. Permutationucup-team191#WA 88ms1648kbC++231.1kb2024-09-08 20:25:042024-09-08 20:25:04

Judging History

This is the latest submission verdict.

  • [2024-09-08 20:25:04]
  • Judged
  • Verdict: WA
  • Time: 88ms
  • Memory: 1648kb
  • [2024-09-08 20:25:04]
  • 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) mid = (49 * l + 51 * r) / 100;
	else mid = (51 * l + 49 * r) / 100;
	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: 1636kb

input:

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

output:

? 1 5
? 3 5
? 4 5
! 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: 65ms
memory: 1592kb

input:

10000
10
2
2
3
2
10
10
10
8
7
10
5
1
5
6
10
4
4
4
4
10
10
6
6
3
2
10
3
3
5
2
10
1
5
5
9
9
10
1
3
1
6
10
2
4
4
9
8
10
3
3
3
5
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
8
9
10
2
1
2
7
10
6
6
8
6
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
3
10
8
7
7
2
2
10
...

output:

? 1 10
? 1 5
? 1 3
? 2 4
! 4
? 1 10
? 6 10
? 8 10
? 7 10
! 6
? 1 10
? 1 5
? 5 7
? 6 7
! 7
? 1 10
? 1 5
? 3 5
? 3 4
! 3
? 1 10
? 6 10
? 4 10
? 1 3
? 1 2
! 1
? 1 10
? 1 5
? 3 5
? 2 3
! 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
? 1 10
? 1 5
...

result:

ok Correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 59ms
memory: 1648kb

input:

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

output:

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

result:

ok Correct (10000 test cases)

Test #4:

score: 0
Accepted
time: 74ms
memory: 1596kb

input:

10000
47
23
23
24
11
2
1
2
14
8
8
8
9
8
25
6
13
6
18
17
17
15
7
4
4
4
9
2
2
2
2
27
27
27
27
24
24
21
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
19
20
47
21
21
21
19
21
16
17
41
25
25
30
30
39
40
38
19
17
17
16
16
12
10
21
14
14
14
15
13
11
27
2
1
2
1...

output:

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

result:

ok Correct (10000 test cases)

Test #5:

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

input:

10000
100
47
5
47
61
53
68
71
71
71
9
2
2
2
1
53
46
35
14
6
6
6
7
6
33
3
16
16
31
31
30
32
82
60
41
60
29
29
28
29
24
88
39
8
39
59
59
59
61
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
39
40
92
43
43
38
43
20
20
20
19
48
1
1
1
5
1
9
7
85
28
28
28
2...

output:

? 1 100
? 1 51
? 47 75
? 52 75
? 52 63
? 61 69
? 70 75
? 70 72
? 70 71
! 70
? 1 9
? 1 5
? 1 3
? 1 2
! 3
? 1 53
? 27 53
? 14 46
? 1 13
? 1 7
? 4 7
? 6 7
? 5 6
! 5
? 1 33
? 1 17
? 3 25
? 26 33
? 30 33
? 30 31
? 31 32
! 33
? 1 82
? 41 82
? 21 60
? 21 40
? 21 30
? 26 30
? 24 29
? 24 25
! 25
? 1 88
? 1 4...

result:

ok Correct (10000 test cases)

Test #6:

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

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
44
46
50
50
50
50
50
49
50
50
36
39
23
12
12
11
12
50
29
36
20
13
12
13
6
5
50
30
42
22
1
1
1
2
1
50
25
15
25
30
30
31
30
50
18
20
20
49
47
47
39
39
50
9
9
9
9
7
11
13
50
26
43
26
17
17
19
16
15
50
16
1...

output:

? 1 50
? 1 25
? 1 13
? 7 13
? 4 10
? 4 6
? 4 5
! 4
? 1 50
? 1 25
? 1 13
? 11 19
? 20 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
? 44 50
? 44 47
? 44 45
? 45 46
! 47
? 1 50
? 26 50
? 38 50
? 44 50
? 47 50
? 46 50
! 46
? 1 ...

result:

ok Correct (10000 test cases)

Test #7:

score: 0
Accepted
time: 84ms
memory: 1584kb

input:

10000
100
76
78
35
5
5
3
5
9
8
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
7
100
64
92
64
41
41
41
42
40
39
100
93
56
93
40
40
41
40
44
45
100
37
2
37
57
54
57
68
68
67
100
76
76
76
76
80
76
83
82
100
32
32
32
31
44
49
48
4...

output:

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

result:

ok Correct (10000 test cases)

Test #8:

score: 0
Accepted
time: 8ms
memory: 1576kb

input:

1000
1000
475
426
728
896
974
896
867
867
860
858
847
847
848
847
1000
278
17
278
598
534
598
679
689
665
637
639
637
645
645
1000
75
128
75
607
604
644
713
712
713
732
730
735
737
738
739
1000
239
239
45
350
432
442
432
458
458
458
459
459
463
1000
978
978
978
978
997
978
914
902
914
920
919
921
92...

output:

? 1 1000
? 1 510
? 475 755
? 756 1000
? 876 1000
? 816 896
? 816 875
? 845 875
? 860 875
? 853 867
? 845 852
? 845 848
? 847 848
? 846 847
! 846
? 1 1000
? 1 510
? 278 755
? 511 755
? 511 635
? 598 695
? 636 695
? 665 695
? 651 679
? 636 650
? 636 643
? 637 646
? 644 646
? 644 645
! 644
? 1 1000
? 1...

result:

ok Correct (1000 test cases)

Test #9:

score: 0
Accepted
time: 7ms
memory: 1588kb

input:

1017
272
246
186
246
111
110
110
73
73
73
72
73
114
105
91
91
2
2
2
2
2
910
173
173
173
127
127
14
29
29
56
55
56
51
50
726
229
229
201
201
63
71
63
28
28
28
29
27
24
861
315
104
315
491
528
491
593
593
593
593
593
592
594
1984
133
133
406
133
571
583
571
701
692
692
650
652
650
647
649
1145
988
988...

output:

? 1 272
? 134 272
? 68 246
? 68 133
? 100 133
? 84 111
? 68 83
? 68 75
? 72 75
? 72 73
? 73 74
! 74
? 1 114
? 57 114
? 29 105
? 1 28
? 1 14
? 1 7
? 1 4
? 1 2
! 1
? 1 910
? 1 464
? 1 237
? 117 237
? 59 173
? 1 58
? 1 30
? 14 44
? 45 58
? 52 58
? 49 56
? 49 51
? 49 50
! 49
? 1 726
? 1 370
? 182 370
? ...

result:

ok Correct (1017 test cases)

Test #10:

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

input:

10
100000
3893
3893
3505
30673
43582
43582
43582
43582
43582
43582
43470
43470
43242
43242
43245
43245
43268
43268
43268
43269
43270
100000
32066
19090
54928
88585
88585
88585
89959
88585
91599
92129
91599
91474
91474
91446
91446
91370
91370
91365
91365
91355
91354
91355
100000
50288
86772
43145
105...

output:

? 1 100000
? 1 51000
? 1 26010
? 3893 38505
? 38506 51000
? 38506 44877
? 41628 44877
? 43221 44877
? 43221 44065
? 43221 43651
? 43432 43651
? 43327 43582
? 43221 43326
? 43221 43274
? 43221 43248
? 43242 43261
? 43262 43274
? 43268 43274
? 43268 43271
? 43268 43269
? 43268 43270
! 43271
? 1 100000...

result:

ok Correct (10 test cases)

Test #11:

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

input:

21
84335
47947
60969
22445
9296
1509
11772
19830
19815
19830
17079
17079
16903
17084
17352
17352
17352
17346
17346
17320
17320
17320
17321
159962
128177
145530
128177
54814
54814
49869
49869
40850
41612
42103
43214
43231
43214
43550
43608
43550
43675
43670
43675
43695
43695
43695
43696
43695
19298
1...

output:

? 1 84335
? 41325 84335
? 20663 47947
? 1 20662
? 1 10538
? 9296 15600
? 15601 20662
? 18081 20662
? 16841 19830
? 16841 18080
? 16841 17472
? 16841 17162
? 17079 17317
? 17318 17472
? 17318 17396
? 17318 17357
? 17338 17357
? 17328 17352
? 17318 17327
? 17318 17322
? 17320 17322
? 17321 17322
! 173...

result:

ok Correct (21 test cases)

Test #12:

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

input:

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

output:

? 1 1000000
? 490001 1000000
? 490001 750100
? 641602 875050
? 750101 875050
? 750101 813824
? 781326 813824
? 781326 797899
? 781326 789778
? 783270 793838
? 793839 797899
? 793839 795909
? 794273 796904
? 795910 796904
? 796398 796904
? 796646 796904
? 796646 796777
? 796734 796840
? 796841 796904...

result:

ok Correct (1 test case)

Test #13:

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

input:

16
232936
229707
229707
229707
229707
229707
229707
231039
227478
225790
225790
225790
225791
225611
225474
225483
225474
225438
225445
225431
225430
225429
225425
225423
8676
6498
6498
7154
5867
4978
5243
4978
4731
4731
4717
4731
4684
4684
4681
4692
4697
4696
4695
221085
172303
209705
142841
20545
...

output:

? 1 232936
? 114140 232936
? 172351 232936
? 202038 232936
? 217179 232936
? 224900 232936
? 228838 232936
? 226869 229707
? 224900 226868
? 224900 225903
? 225392 225903
? 225643 225903
? 225518 225790
? 225392 225517
? 225454 225517
? 225423 225474
? 225423 225453
? 225438 225453
? 225431 225438
?...

result:

ok Correct (16 test cases)

Test #14:

score: -100
Wrong Answer
time: 26ms
memory: 1600kb

input:

1994
667
666
667
665
164
163
163
40
39
39
10
9
9
3
2
374
373
374
372
92
91
91
23
22
22
6
5
5
2
488
486
488
485
120
119
119
30
29
29
8
7
7
2
922
921
922
920
226
225
225
56
55
55
14
13
13
4
3
3
639
637
639
636
157
156
156
39
38
38
10
9
9
3
2
353
350
353
349
87
86
86
22
21
21
6
5
5
2
71
66
71
65
18
17
...

output:

? 1 667
? 328 667
? 165 666
? 1 164
? 81 164
? 41 164
? 1 40
? 21 40
? 11 40
? 1 10
? 6 10
? 4 10
? 1 3
? 1 2
! 1
? 1 374
? 184 374
? 93 373
? 1 92
? 46 92
? 24 92
? 1 23
? 12 23
? 7 23
? 1 6
? 4 6
? 3 6
? 1 2
! 1
? 1 488
? 240 488
? 121 486
? 1 120
? 60 120
? 31 120
? 1 30
? 16 30
? 9 30
? 1 8
? 5 ...

result:

wrong answer Too long queries, n = 989, now length 2968 (test case 769)