QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#553797 | #8939. Permutation | ucup-team191# | WA | 88ms | 1648kb | C++23 | 1.1kb | 2024-09-08 20:25:04 | 2024-09-08 20:25:04 |
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) 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)