QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#553775 | #8939. Permutation | ucup-team191# | WA | 75ms | 1640kb | C++23 | 1.0kb | 2024-09-08 20:08:12 | 2024-09-08 20:08:13 |
Judging History
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: 1580kb
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: 35ms
memory: 1588kb
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 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 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 ? 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 ? 1 10 ? 1 5 ...
result:
ok Correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 50ms
memory: 1632kb
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 13 11 6 4 4 5 18 7 7 7 5 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 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: 71ms
memory: 1624kb
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 2 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 39 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 ? 1 4 ? 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: 75ms
memory: 1640kb
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 42 60 29 29 28 29 26 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 38 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 50 ? 47 75 ? 51 75 ? 51 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 ? 42 82 ? 22 60 ? 22 41 ? 22 31 ? 27 31 ? 25 29 ? 25 26 ! 25 ? 1 88 ? 1 4...
result:
ok Correct (10000 test cases)
Test #6:
score: 0
Accepted
time: 67ms
memory: 1536kb
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: 72ms
memory: 1624kb
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 41 40 40 100 93 56 93 40 40 44 40 45 47 100 37 2 37 57 54 57 68 68 67 100 76 76 76 76 80 76 85 83 100 32 32 32 31 44 49 48 4...
output:
? 1 100 ? 51 100 ? 26 76 ? 1 25 ? 1 13 ? 1 7 ? 5 10 ? 8 10 ? 8 9 ! 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 ! 8...
result:
ok Correct (10000 test cases)
Test #8:
score: 0
Accepted
time: 8ms
memory: 1632kb
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 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 463 462 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 ? 860 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 ? 649 656 ? 646 652 ? 642 645 ? 644 645 ! 644 ? 1 1000 ? 1...
result:
ok Correct (1000 test cases)
Test #9:
score: 0
Accepted
time: 16ms
memory: 1536kb
input:
1017 272 246 186 246 111 110 110 73 73 71 73 75 114 105 91 91 2 2 2 2 2 910 173 173 173 127 127 14 29 29 56 51 56 48 50 726 229 229 201 201 63 71 63 28 28 28 29 27 24 861 315 104 315 491 528 551 632 641 614 593 593 593 594 593 1984 133 133 406 133 571 512 571 673 682 673 650 650 650 651 649 1145 988...
output:
? 1 272 ? 137 272 ? 69 246 ? 69 136 ? 103 136 ? 86 111 ? 69 85 ? 69 77 ? 69 73 ? 73 75 ? 74 75 ! 74 ? 1 114 ? 58 114 ? 30 105 ? 1 29 ? 1 15 ? 1 8 ? 1 4 ? 1 2 ! 1 ? 1 910 ? 1 455 ? 1 228 ? 115 228 ? 58 173 ? 1 57 ? 1 29 ? 14 43 ? 44 57 ? 51 57 ? 48 56 ? 48 50 ? 49 50 ! 49 ? 1 726 ? 1 363 ? 182 363 ? ...
result:
ok Correct (1017 test cases)
Test #10:
score: 0
Accepted
time: 2ms
memory: 1536kb
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 91354 91353 100000 50288 867...
output:
? 1 100000 ? 1 50000 ? 1 25000 ? 3893 37500 ? 37501 50000 ? 37501 43750 ? 40626 43750 ? 42188 43750 ? 42969 43750 ? 43360 43750 ? 43165 43582 ? 43165 43359 ? 43165 43262 ? 43242 43310 ? 43263 43310 ? 43287 43310 ? 43275 43289 ? 43263 43274 ? 43263 43268 ? 43268 43271 ? 43269 43271 ? 43269 43270 ! 43...
result:
ok Correct (10 test cases)
Test #11:
score: 0
Accepted
time: 3ms
memory: 1536kb
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 43695 19298 18479 1...
output:
? 1 84335 ? 42168 84335 ? 21085 47947 ? 1 21084 ? 1 10542 ? 9296 15813 ? 15814 21084 ? 18449 21084 ? 17132 20931 ? 17132 18448 ? 17132 17790 ? 17461 17790 ? 17297 17510 ? 17297 17460 ? 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: 1632kb
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 789063 ? 783270 792969 ? 792970 796875 ? 792970 794922 ? 794273 795898 ? 795899 796875 ? 796387 796875 ? 796631 796875 ? 796631 796753 ? 796734 796814 ? 796815 796875...
result:
ok Correct (1 test case)
Test #13:
score: 0
Accepted
time: 3ms
memory: 1604kb
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 225423 8676 6498 6498 6498 5867 4978 4731 4731 4731 4731 4717 4717 4684 4681 4690 4692 4691 4693 221085 172303 209705 142841 20545 20545...
output:
? 1 232936 ? 116469 232936 ? 174703 232936 ? 203820 232936 ? 218378 232936 ? 225657 232936 ? 222018 229707 ? 222018 225656 ? 222018 223837 ? 223556 224746 ? 224747 225656 ? 225202 225656 ? 225202 225429 ? 225202 225315 ? 225261 225372 ? 225373 225429 ? 225373 225401 ? 225375 225415 ? 225416 225429 ?...
result:
ok Correct (16 test cases)
Test #14:
score: -100
Wrong Answer
time: 25ms
memory: 1536kb
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 88 87 87 22 21 21 6 5 5 2 71 66 71 65 18 1...
output:
? 1 667 ? 334 667 ? 168 666 ? 1 167 ? 84 167 ? 43 167 ? 1 42 ? 22 42 ? 12 42 ? 1 11 ? 6 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 ? 16 31 ? 9 31 ? 1 8 ? 5 ...
result:
wrong answer Too long queries, n = 938, now length 2815 (test case 186)