QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#608981 | #8939. Permutation | UESTC_NLNS | WA | 167ms | 3972kb | C++14 | 917b | 2024-10-04 10:00:56 | 2024-10-04 10:00:56 |
Judging History
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)