Task: | Leikkijät |
Sender: | vgtcross |
Submission time: | 2025-01-18 16:36:30 +0200 |
Language: | C++ (C++20) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 5 |
#2 | ACCEPTED | 8 |
#3 | ACCEPTED | 10 |
#4 | ACCEPTED | 29 |
#5 | ACCEPTED | 37 |
#6 | ACCEPTED | 11 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.00 s | 1, 2, 5, 6 | details |
#2 | ACCEPTED | 0.00 s | 1, 2, 3, 5, 6 | details |
#3 | ACCEPTED | 0.00 s | 1, 2, 5, 6 | details |
#4 | ACCEPTED | 0.00 s | 1, 2, 4, 5, 6 | details |
#5 | ACCEPTED | 0.00 s | 2, 5, 6 | details |
#6 | ACCEPTED | 0.01 s | 2, 3, 5, 6 | details |
#7 | ACCEPTED | 0.00 s | 2, 5, 6 | details |
#8 | ACCEPTED | 0.01 s | 2, 4, 5, 6 | details |
#9 | ACCEPTED | 0.00 s | 5, 6 | details |
#10 | ACCEPTED | 0.04 s | 6 | details |
#11 | ACCEPTED | 0.00 s | 1, 2, 5, 6 | details |
#12 | ACCEPTED | 0.03 s | 6 | details |
#13 | ACCEPTED | 0.00 s | 3, 5, 6 | details |
#14 | ACCEPTED | 0.00 s | 3, 5, 6 | details |
#15 | ACCEPTED | 0.00 s | 4, 5, 6 | details |
#16 | ACCEPTED | 0.00 s | 5, 6 | details |
#17 | ACCEPTED | 0.05 s | 6 | details |
#18 | ACCEPTED | 0.00 s | 4, 5, 6 | details |
#19 | ACCEPTED | 0.00 s | 5, 6 | details |
#20 | ACCEPTED | 0.04 s | 6 | details |
#21 | ACCEPTED | 0.05 s | 6 | details |
#22 | ACCEPTED | 0.00 s | 5, 6 | details |
Compiler report
input/code.cpp: In function 'int get_n(int, int)': input/code.cpp:15:16: warning: suggest parentheses around '-' inside '<<' [-Wparentheses] 15 | x ^= 1 << k-1; | ~^~ input/code.cpp:20:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] 20 | bool b = (x >> i+1 & 1) ^ (x >> i & 1); | ~^~ input/code.cpp:22:44: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] 22 | if (!(x >> i & 1) && b) m -= 1 << i+1; | ~^~ input/code.cpp:25:16: warning: suggest parentheses around '-' inside '<<' [-Wparentheses] 25 | m %= 1 << k-1; | ~^~ input/code.cpp: In function 'void solve()': input/code.cpp:42:28: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] 42 | if (b < (1 << k+1)) { | ~^~ input/code.cpp:52:28: warning: suggest parentheses around '-' inside...
Code
#include <bits/stdc++.h> #define debug(x) cout << #x << ": " << x << endl #define fi first #define se second #define all(x) begin(x),end(x) #define rall(x) rbegin(x),rend(x) using namespace std; using ll = long long; using pii = pair<int, int>; int get_n(int x, int k) { if (k == 0) return -1; x ^= 1 << k-1; if (x & 1) return -1; int m = 0; for (int i = k-2; i >= 0; --i) { bool b = (x >> i+1 & 1) ^ (x >> i & 1); m += b << i; if (!(x >> i & 1) && b) m -= 1 << i+1; } if (m < 0) m += 1 << k; m %= 1 << k-1; return m; } void solve() { int a, b; cin >> a >> b; --a;--b; if (a == b) { cout << "-1\n"; return; } int n = 1e9; for (int k = 1;; ++k) { if (a % (1 << k) != b % (1 << k)) { if (b < (1 << k+1)) { int m = get_n(b, k+1); if (m == -1) break; int p = 0; int c = max(a, b); if (c - m >= 0) p = ((c - m) >> k) + 1; if (m + (p << k) <= a + (1 << k)) { n = min(n, m + (p << k)); } m ^= 1 << k-1; p = 0; if (c - m >= 0) p = ((c - m) >> k) + 1; if (m + (p << k) <= min(a + (1 << k), b ^ 1 << k)) { n = min(n, m + (p << k)); } } break; } } if (a < b) { int d = b - a; if (!(d & d-1)) { int k = 0; while ((1 << k) < d) ++k; int m = get_n(a % d, k); if (m != -1) { int p = 0; if (b - m >= 0) p = ((b - m) >> k-1) + 1; n = min(n, m + (p << k-1)); } } } cout << (n == 1e9 ? -1 : n) << '\n'; } int main() { cin.tie(0) -> sync_with_stdio(0); int t; cin >> t; while (t--) solve(); }
Test details
Test 1
Group: 1, 2, 5, 6
Verdict: ACCEPTED
input |
---|
1000 42 100 73 94 1 13 31 100 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 2
Group: 1, 2, 3, 5, 6
Verdict: ACCEPTED
input |
---|
1000 54 3 42 44 30 1 52 3 ... |
correct output |
---|
54 44 31 52 15 ... |
user output |
---|
54 44 31 52 15 ... Truncated |
Test 3
Group: 1, 2, 5, 6
Verdict: ACCEPTED
input |
---|
1000 27 25 81 65 45 43 87 23 ... |
correct output |
---|
-1 -1 -1 139 -1 ... |
user output |
---|
-1 -1 -1 139 -1 ... Truncated |
Test 4
Group: 1, 2, 4, 5, 6
Verdict: ACCEPTED
input |
---|
1000 55 63 39 71 95 96 61 69 ... |
correct output |
---|
65 75 -1 72 98 ... |
user output |
---|
65 75 -1 72 98 ... Truncated |
Test 5
Group: 2, 5, 6
Verdict: ACCEPTED
input |
---|
1000 222 56 871 832 207 364 919 980 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 6
Group: 2, 3, 5, 6
Verdict: ACCEPTED
input |
---|
1000 892 3 332 334 820 822 42 1 ... |
correct output |
---|
892 334 822 43 108 ... |
user output |
---|
892 334 822 43 108 ... Truncated |
Test 7
Group: 2, 5, 6
Verdict: ACCEPTED
input |
---|
1000 77 93 319 575 509 381 675 707 ... |
correct output |
---|
98 607 574 713 919 ... |
user output |
---|
98 607 574 713 919 ... Truncated |
Test 8
Group: 2, 4, 5, 6
Verdict: ACCEPTED
input |
---|
1000 969 985 233 489 403 659 427 555 ... |
correct output |
---|
992 500 777 565 261 ... |
user output |
---|
992 500 777 565 261 ... Truncated |
Test 9
Group: 5, 6
Verdict: ACCEPTED
input |
---|
1000 10375 364462 501875 499131 495774 7544 133830 316225 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 10
Group: 6
Verdict: ACCEPTED
input |
---|
100000 771321 298762 20752 494590 633649 443015 748804 831912 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 11
Group: 1, 2, 5, 6
Verdict: ACCEPTED
input |
---|
900 1 1 1 2 1 3 1 4 ... |
correct output |
---|
-1 -1 3 -1 5 ... |
user output |
---|
-1 -1 3 -1 5 ... Truncated |
Test 12
Group: 6
Verdict: ACCEPTED
input |
---|
90000 1 1 1 2 1 3 1 4 ... |
correct output |
---|
-1 -1 3 -1 5 ... |
user output |
---|
-1 -1 3 -1 5 ... Truncated |
Test 13
Group: 3, 5, 6
Verdict: ACCEPTED
input |
---|
1000 237542 859435 965750 179154 972602 758585 453450 751662 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 14
Group: 3, 5, 6
Verdict: ACCEPTED
input |
---|
1000 773164 1 870426 1 309736 309738 957602 957604 ... |
correct output |
---|
773165 870427 309738 957604 513118 ... |
user output |
---|
773165 870427 309738 957604 513118 ... Truncated |
Test 15
Group: 4, 5, 6
Verdict: ACCEPTED
input |
---|
1000 178896 591355 54364 110987 361539 818612 275401 926643 ... |
correct output |
---|
-1 -1 -1 -1 -1 ... |
user output |
---|
-1 -1 -1 -1 -1 ... Truncated |
Test 16
Group: 5, 6
Verdict: ACCEPTED
input |
---|
1000 704481 704465 696919 688727 941011 949203 171023 171025 ... |
correct output |
---|
-1 -1 951785 -1 -1 ... |
user output |
---|
-1 -1 951785 -1 -1 ... Truncated |
Test 17
Group: 6
Verdict: ACCEPTED
input |
---|
100000 67901 133437 637521 637537 742567 742569 864043 864044 ... |
correct output |
---|
148638 637540 -1 -1 652457 ... |
user output |
---|
148638 637540 -1 -1 652457 ... Truncated |
Test 18
Group: 4, 5, 6
Verdict: ACCEPTED
input |
---|
1000 650375 650377 181841 443985 750137 750138 256969 322505 ... |
correct output |
---|
-1 484136 -1 341476 850152 ... |
user output |
---|
-1 484136 -1 341476 850152 ... Truncated |
Test 19
Group: 5, 6
Verdict: ACCEPTED
input |
---|
1000 1 3 1 5 1 9 1 17 ... |
correct output |
---|
3 5 10 20 40 ... |
user output |
---|
3 5 10 20 40 ... Truncated |
Test 20
Group: 6
Verdict: ACCEPTED
input |
---|
100000 1 3 1 5 1 9 1 17 ... |
correct output |
---|
3 5 10 20 40 ... |
user output |
---|
3 5 10 20 40 ... Truncated |
Test 21
Group: 6
Verdict: ACCEPTED
input |
---|
100000 999999 1 999999 3 999999 5 999999 7 ... |
correct output |
---|
1000002 1000005 1000000 1000011 1000001 ... |
user output |
---|
1000002 1000005 1000000 1000011 1000001 ... Truncated |
Test 22
Group: 5, 6
Verdict: ACCEPTED
input |
---|
1000 999999 1 999999 3 999999 5 999999 7 ... |
correct output |
---|
1000002 1000005 1000000 1000011 1000001 ... |
user output |
---|
1000002 1000005 1000000 1000011 1000001 ... Truncated |