QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#608981#8939. PermutationUESTC_NLNSWA 167ms3972kbC++14917b2024-10-04 10:00:562024-10-04 10:00:56

Judging History

This is the latest submission verdict.

  • [2024-10-04 10:00:56]
  • Judged
  • Verdict: WA
  • Time: 167ms
  • Memory: 3972kb
  • [2024-10-04 10:00:56]
  • Submitted

answer

#include<bits/stdc++.h>
#define pii pair<int,int>
using namespace std;
map<pii,int> mp;
const int N=1e6+5;
void answer(int x)
{
	printf("! %d\n",x);
	fflush(stdout);
	return;
}
int query(int l,int r)
{
	if(mp.find({l,r})!=mp.end()) return mp[{l,r}];
	int x;
	printf("? %d %d\n",l,r);
	fflush(stdout);
	scanf("%d",&x);
	mp[{l,r}]=x;
	return x;
}
void solve(int l,int r)
{
	if(l==r)
	{
		answer(l);
		return;
	}
	int mid=(l+r)/2,lmid,x=query(l,r),y;
	if(l+1==r)
	{
		if(x==l) answer(r);
		else answer(l);
		return;
	}
	int len=max(2,(int)((r-l+1)*0.6));
	if(x<=mid)
	{
		y=query(l,l+len-1);
		if(x==y) solve(l,l+len-1);
		else solve(l+len,r);
	}
	else
	{
		y=query(r-len+1,r);
		if(x==y) solve(r-len+1,r);
		else solve(l,r-len);
	}
	return;
}
int T,n;
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		solve(1,n);
		mp.clear();
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3840kb

input:

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

output:

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

result:

ok Correct (3 test cases)

Test #2:

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

input:

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

output:

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

result:

ok Correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 65ms
memory: 3912kb

input:

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

output:

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

result:

ok Correct (10000 test cases)

Test #4:

score: 0
Accepted
time: 86ms
memory: 3908kb

input:

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

output:

? 1 47
? 1 28
? 13 28
? 1 12
? 6 12
? 1 5
? 1 3
? 4 5
! 4
? 1 14
? 7 14
? 7 10
? 7 8
? 9 10
! 10
? 1 25
? 1 15
? 1 9
? 10 15
? 13 15
? 13 14
! 14
? 1 7
? 1 4
? 5 7
? 5 6
! 5
? 1 9
? 1 5
? 1 3
? 1 2
! 1
? 1 27
? 12 27
? 19 27
? 23 27
? 19 22
? 19 20
? 21 22
! 22
? 1 21
? 1 12
? 6 12
? 1 5
? 3 5
? 4 5...

result:

ok Correct (10000 test cases)

Test #5:

score: 0
Accepted
time: 167ms
memory: 3928kb

input:

10000
100
47
5
61
61
61
68
71
71
71
9
2
2
2
1
53
46
35
6
6
6
6
7
4
33
3
16
31
31
31
30
32
82
60
41
29
29
29
28
23
23
24
88
39
8
59
59
59
59
59
59
71
24
29
59
59
59
60
64
63
61
92
52
52
45
88
88
88
89
91
91
24
11
11
9
5
5
5
66
51
51
45
29
28
39
40
43
42
92
43
43
50
20
20
20
21
17
16
48
1
1
1
1
5
9
9
...

output:

? 1 100
? 1 60
? 61 100
? 61 84
? 61 74
? 61 68
? 69 74
? 69 71
? 70 71
! 70
? 1 9
? 1 5
? 1 3
? 1 2
! 3
? 1 53
? 23 53
? 1 22
? 1 13
? 1 7
? 4 7
? 6 7
? 4 5
! 5
? 1 33
? 1 19
? 20 33
? 26 33
? 30 33
? 30 31
? 32 33
! 33
? 1 82
? 34 82
? 1 33
? 15 33
? 23 33
? 28 33
? 23 27
? 23 25
? 23 24
! 25
? 1 ...

result:

ok Correct (10000 test cases)

Test #6:

score: 0
Accepted
time: 108ms
memory: 3972kb

input:

10000
50
10
10
10
14
2
2
1
3
50
11
11
9
23
23
23
22
25
50
44
44
40
21
21
21
22
23
50
24
14
45
45
45
45
44
46
50
50
50
50
50
50
49
47
47
50
36
23
17
17
18
12
11
10
50
29
36
20
13
3
3
3
50
30
42
16
11
1
1
2
4
50
25
25
25
25
21
30
29
27
50
18
20
49
47
37
37
37
50
9
9
9
5
17
18
14
13
11
50
26
43
17
17
1...

output:

? 1 50
? 1 30
? 1 18
? 9 18
? 1 8
? 1 4
? 1 2
? 3 4
! 4
? 1 50
? 1 30
? 1 18
? 19 30
? 19 25
? 22 25
? 22 23
? 24 25
! 24
? 1 50
? 21 50
? 33 50
? 21 32
? 21 27
? 21 24
? 21 22
? 23 24
! 24
? 1 50
? 1 30
? 31 50
? 39 50
? 44 50
? 44 47
? 44 45
? 46 47
! 47
? 1 50
? 21 50
? 33 50
? 41 50
? 45 50
? 48...

result:

ok Correct (10000 test cases)

Test #7:

score: 0
Accepted
time: 109ms
memory: 3968kb

input:

10000
100
76
49
35
34
5
3
11
11
11
100
29
29
29
29
29
29
30
26
26
100
64
64
69
88
88
86
78
77
80
81
100
51
51
57
98
92
79
79
77
81
80
100
44
44
50
13
24
1
4
9
10
7
100
64
92
22
22
19
33
35
40
39
37
100
93
93
86
56
59
44
44
44
45
100
37
2
97
81
76
76
74
68
68
100
76
76
76
76
76
74
85
85
85
100
32
32
...

output:

? 1 100
? 41 100
? 1 40
? 17 40
? 1 16
? 1 9
? 10 16
? 10 13
? 10 11
! 10
? 1 100
? 1 60
? 1 36
? 16 36
? 25 36
? 25 31
? 28 31
? 25 27
? 25 26
! 25
? 1 100
? 41 100
? 41 76
? 77 100
? 77 90
? 83 90
? 77 82
? 77 79
? 80 82
? 80 81
! 82
? 1 100
? 41 100
? 41 76
? 77 100
? 87 100
? 77 86
? 77 82
? 77 ...

result:

ok Correct (10000 test cases)

Test #8:

score: 0
Accepted
time: 26ms
memory: 3912kb

input:

1000
1000
475
426
728
747
896
896
929
867
858
841
841
844
847
847
1000
278
17
974
811
757
751
637
637
637
628
640
640
641
643
1000
75
128
871
985
607
644
713
732
749
755
735
735
737
739
738
1000
239
239
45
577
577
520
458
458
458
458
459
467
466
465
1000
978
978
978
978
978
978
997
944
950
932
936
9...

output:

? 1 1000
? 1 600
? 601 1000
? 601 840
? 841 1000
? 841 936
? 880 936
? 841 879
? 857 879
? 841 856
? 841 849
? 841 845
? 846 849
? 846 847
! 846
? 1 1000
? 1 600
? 601 1000
? 761 1000
? 601 760
? 665 760
? 601 664
? 627 664
? 627 648
? 627 639
? 640 648
? 640 644
? 640 642
? 643 644
! 644
? 1 1000
?...

result:

ok Correct (1000 test cases)

Test #9:

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

input:

1017
272
246
111
27
52
73
73
73
73
73
73
72
114
105
91
2
2
2
2
2
2
2
910
173
173
173
148
14
14
29
65
70
56
55
51
52
48
47
726
229
229
424
118
149
63
39
28
28
28
28
27
24
861
315
104
671
671
688
593
593
593
593
593
593
593
594
1984
133
133
133
406
571
512
704
704
701
673
658
650
650
652
647
646
1145
...

output:

? 1 272
? 110 272
? 1 109
? 1 65
? 66 109
? 66 91
? 66 80
? 66 74
? 70 74
? 72 74
? 72 73
! 74
? 1 114
? 47 114
? 1 46
? 1 27
? 1 16
? 1 9
? 1 5
? 1 3
? 1 2
! 1
? 1 910
? 1 546
? 1 327
? 132 327
? 1 131
? 1 78
? 1 46
? 47 78
? 60 78
? 47 59
? 53 59
? 47 52
? 50 52
? 47 49
? 47 48
! 49
? 1 726
? 1 43...

result:

ok Correct (1017 test cases)

Test #10:

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

input:

10
100000
3893
3893
30673
43582
43582
43582
43582
43582
43582
43582
43470
43242
43242
43242
43242
43242
43245
43268
43263
43279
43278
43273
43274
43272
100000
32066
54928
68197
71764
88585
88585
85554
93282
93282
93193
91599
91599
91790
91474
91446
91383
91383
91370
91339
91337
91348
91349
91354
913...

output:

? 1 100000
? 1 60000
? 1 36000
? 36001 60000
? 36001 50400
? 41761 50400
? 41761 46944
? 41761 44870
? 43005 44870
? 43005 44123
? 43453 44123
? 43005 43452
? 43185 43452
? 43185 43344
? 43185 43280
? 43224 43280
? 43224 43257
? 43258 43280
? 43258 43270
? 43271 43280
? 43275 43280
? 43271 43274
? 4...

result:

ok Correct (10 test cases)

Test #11:

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

input:

21
84335
47947
60969
22445
22445
22445
20931
17079
17079
17079
17079
16903
17510
17606
17352
17352
17346
17316
17316
17316
17313
17320
17321
17323
17323
159962
128177
145530
35270
35270
35270
34180
40850
40850
42103
43214
43214
43231
43550
43550
43550
43608
43675
43670
43695
43695
43702
43689
43687
...

output:

? 1 84335
? 33735 84335
? 1 33734
? 13495 33734
? 13495 25638
? 18353 25638
? 13495 18352
? 15439 18352
? 16605 18352
? 16605 17652
? 16605 17232
? 17233 17652
? 17401 17652
? 17233 17400
? 17301 17400
? 17341 17400
? 17301 17340
? 17301 17324
? 17311 17324
? 17311 17318
? 17319 17324
? 17319 17321
...

result:

ok Correct (21 test cases)

Test #12:

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

input:

1
1000000
641602
641602
418256
783270
783270
783270
783270
786055
805651
802269
794273
791414
797591
797591
797004
796734
796734
796734
796686
796850
796850
796850
796844
796864
796864
796864
796866
796861
796861

output:

? 1 1000000
? 400001 1000000
? 400001 760000
? 760001 1000000
? 760001 904000
? 760001 846400
? 760001 811840
? 760001 791104
? 791105 811840
? 799400 811840
? 791105 799399
? 791105 796081
? 796082 799399
? 796082 798071
? 796878 798071
? 796082 796877
? 796401 796877
? 796592 796877
? 796592 79676...

result:

ok Correct (1 test case)

Test #13:

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

input:

16
232936
229707
229707
229707
229707
229707
229707
229707
231039
223556
224031
225790
225790
225790
225915
225474
225474
225483
225375
225407
225417
225419
225431
225430
225425
225425
8676
6498
6498
7154
4978
4978
5463
4731
4731
4731
4717
4684
4684
4684
4676
4692
4692
4691
4695
4695
221085
172303
2...

output:

? 1 232936
? 93176 232936
? 149081 232936
? 182624 232936
? 202750 232936
? 214825 232936
? 222070 232936
? 226417 232936
? 222070 226416
? 222070 224677
? 224678 226416
? 225374 226416
? 225374 225998
? 225624 225998
? 225374 225623
? 225374 225523
? 225434 225523
? 225374 225433
? 225374 225409
? ...

result:

ok Correct (16 test cases)

Test #14:

score: 0
Accepted
time: 46ms
memory: 3964kb

input:

1994
667
666
667
267
266
107
106
43
42
18
17
8
7
4
3
2
374
373
374
150
149
60
59
24
23
10
9
4
3
2
488
486
488
196
195
79
78
32
31
13
12
6
5
3
2
922
921
922
369
368
148
147
60
59
24
23
10
9
4
3
2
639
637
639
256
255
103
102
42
41
17
16
7
6
3
2
353
350
353
142
141
57
56
23
22
10
9
4
3
2
71
66
71
29
28...

output:

? 1 667
? 268 667
? 1 267
? 108 267
? 1 107
? 44 107
? 1 43
? 19 43
? 1 18
? 9 18
? 1 8
? 5 8
? 1 4
? 3 4
? 1 2
! 1
? 1 374
? 151 374
? 1 150
? 61 150
? 1 60
? 25 60
? 1 24
? 11 24
? 1 10
? 5 10
? 1 4
? 3 4
? 1 2
! 1
? 1 488
? 197 488
? 1 196
? 80 196
? 1 79
? 33 79
? 1 32
? 14 32
? 1 13
? 7 13
? 1 ...

result:

ok Correct (1994 test cases)

Test #15:

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

input:

18
153667
153667
153666
61467
61466
24587
24586
9835
9834
3934
3933
1574
1573
630
629
252
251
101
100
41
40
17
16
7
6
3
2
211376
211374
211376
84551
84550
33821
33820
13529
13528
5412
5411
2165
2164
866
865
347
346
139
138
56
55
23
22
10
9
4
3
2
195330
195326
195330
78132
78131
31253
31252
12502
125...

output:

? 1 153667
? 61468 153667
? 1 61467
? 24588 61467
? 1 24587
? 9836 24587
? 1 9835
? 3935 9835
? 1 3934
? 1575 3934
? 1 1574
? 631 1574
? 1 630
? 253 630
? 1 252
? 102 252
? 1 101
? 42 101
? 1 41
? 18 41
? 1 17
? 8 17
? 1 7
? 4 7
? 1 3
? 2 3
! 1
? 1 211376
? 84552 211376
? 1 84551
? 33822 84551
? 1 3...

result:

ok Correct (18 test cases)

Test #16:

score: -100
Wrong Answer
time: 1ms
memory: 3868kb

input:

1
1000000
999998
1000000
400000
399999
160000
159999
64000
63999
25600
25599
10240
10239
4096
4095
1639
1638
656
655
263
262
106
105
43
42
18
17
8
7
4
3

output:

? 1 1000000
? 400001 1000000
? 1 400000
? 160001 400000
? 1 160000
? 64001 160000
? 1 64000
? 25601 64000
? 1 25600
? 10241 25600
? 1 10240
? 4097 10240
? 1 4096
? 1640 4096
? 1 1639
? 657 1639
? 1 656
? 264 656
? 1 263
? 107 263
? 1 106
? 44 106
? 1 43
? 19 43
? 1 18
? 9 18
? 1 8
? 5 8
? 1 4
? 3 4
...

result:

wrong answer Too many queries , n = 1000000 , now_q 31 (test case 1)