Please sign in first.
Submission #70099116
Source Code Expand
#include <bits/stdc++.h> #ifdef LOCAL #include <debug.hpp> #else #define debug(...) void(0) #endif template <class T, class U = T> bool chmin(T& x, U&& y) { return y < x and (x = std::forward<U>(y), true); } template <class T, class U = T> bool chmax(T& x, U&& y) { return x < y and (x = std::forward<U>(y), true); } template <class T> void mkuni(std::vector<T>& v) { std::ranges::sort(v); auto result = std::ranges::unique(v); v.erase(result.begin(), result.end()); } template <class T> int lwb(const std::vector<T>& v, const T& x) { return std::distance(v.begin(), std::ranges::lower_bound(v, x)); } using namespace std; using ll = long long; constexpr int MAX_LOG = 30; void solve() { int C, X; cin >> C >> X; auto check = [&](int n) { if (n == 0) { return false; } return (n ^ C) % n == X; }; { int n = X ^ C; if (check(n)) { cout << n << "\n"; return; } } { int cur = 0, n = 1 << MAX_LOG; for (int i = MAX_LOG - 1, f = 1; i >= 0; i--) { if (C >> i & 1) { if (f) { cur += 1 << i; f = 0; } else { if (cur < X) { cur += 1 << i; } else { cur -= 1 << i; n |= 1 << i; } } } } if (check(n)) { cout << n << "\n"; } else { cout << -1 << "\n"; } } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); int t; cin >> t; for (; t--;) { solve(); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Mod of XOR |
User | rniya |
Language | C++ 23 (gcc 12.2) |
Score | 700 |
Code Size | 1875 Byte |
Status | AC |
Exec Time | 67 ms |
Memory | 3540 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt |
All | 00_sample_00.txt, 01_handmade_00.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 01_handmade_04.txt, 01_handmade_05.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 02_random_11.txt, 02_random_12.txt, 02_random_13.txt, 02_random_14.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 1 ms | 3392 KiB |
01_handmade_00.txt | AC | 46 ms | 3456 KiB |
01_handmade_01.txt | AC | 37 ms | 3444 KiB |
01_handmade_02.txt | AC | 32 ms | 3472 KiB |
01_handmade_03.txt | AC | 31 ms | 3344 KiB |
01_handmade_04.txt | AC | 60 ms | 3480 KiB |
01_handmade_05.txt | AC | 41 ms | 3416 KiB |
02_random_00.txt | AC | 49 ms | 3476 KiB |
02_random_01.txt | AC | 48 ms | 3420 KiB |
02_random_02.txt | AC | 44 ms | 3540 KiB |
02_random_03.txt | AC | 43 ms | 3420 KiB |
02_random_04.txt | AC | 43 ms | 3480 KiB |
02_random_05.txt | AC | 58 ms | 3480 KiB |
02_random_06.txt | AC | 57 ms | 3424 KiB |
02_random_07.txt | AC | 58 ms | 3480 KiB |
02_random_08.txt | AC | 36 ms | 3480 KiB |
02_random_09.txt | AC | 36 ms | 3456 KiB |
02_random_10.txt | AC | 36 ms | 3492 KiB |
02_random_11.txt | AC | 67 ms | 3468 KiB |
02_random_12.txt | AC | 67 ms | 3452 KiB |
02_random_13.txt | AC | 66 ms | 3412 KiB |
02_random_14.txt | AC | 36 ms | 3472 KiB |