QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#519092 | #9176. Non-Interactive Nim | zrzring | WA | 35ms | 3828kb | C++20 | 1.6kb | 2024-08-14 16:17:25 | 2024-08-14 16:17:25 |
Judging History
answer
#include <bits/stdc++.h>
using i64 = long long;
#define A2 std::array<i64, 2>
#define lowbit(x) ((x) & -(x))
#define NO return (void)(std::cout << "NO" << endl)
#define YES return (void)(std::cout << "YES" << endl)
#define Fast_IOS std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0)
const i64 mod = 998244353;
template <class T> T lg(T x) {return (T)log10(x);}
template <class T> T log(T x) {return (T)log2(x);}
template <class T> T abs(T x) {return x < 0 ? -x : x;}
template <class T> T mysqrt(T x) {return std::floor(sqrtl(x));}
template <class T> T MOD(T &x, i64 p = mod) {return x = (x % p + p) % p;}
template <class T> T MOD(T &&x, i64 p = mod) {return x = (x % p + p) % p;}
template <class T1, class T2> T1 getbit(T1 x, T2 t) {return x >> t & 1ll;}
class WORK {
public:
int N;
WORK() {}
void solve() {
int n;
std::cin >> n;
std::vector<i64> a(n + 1);
for (int i = 1; i <= n; i++) {
std::cin >> a[i];
}
std::vector<A2> ans;
for (int k = 59; k >= 0; k--) {
std::vector<int> bit;
for (int i = 1; i <= n; i++) {
if ((a[i] >> k & 1) == 1) {
bit.push_back(i);
}
}
if (bit.size() > 2) {
std::cout << -1 << '\n';
return;
}
if (bit.empty()) continue;
if (a[bit[0]] < a[bit[1]]) {
std::swap(bit[0], bit[1]);
}
ans.push_back({bit[0], a[bit[1]]});
a[bit[0]] ^= a[bit[1]];
a[bit[1]] = 0;
}
std::cout << ans.size() << '\n';
for (auto [x, y] : ans) {
std::cout << x << ' ' << y << '\n';
}
}
};
int main() {
Fast_IOS;
WORK work;
int T = 1;
std::cin >> T;
while (T--) {
work.solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3828kb
input:
2 4 4 2 7 1 4 1 1 1 1
output:
3 3 4 3 2 3 1 -1
result:
ok OK 1 yes 1 no (2 test cases)
Test #2:
score: 0
Accepted
time: 24ms
memory: 3804kb
input:
50000 2 3 3 2 2 2 2 3 3 2 2 2 2 3 3 2 3 3 2 1 1 2 1 1 2 1 1 2 2 2 2 2 2 2 3 3 2 2 2 2 1 1 2 3 3 2 1 1 2 1 1 2 1 1 2 3 3 2 1 1 2 1 1 2 3 3 2 2 2 2 3 3 2 3 3 2 2 2 2 1 1 2 3 3 2 2 2 2 2 2 2 3 3 2 3 3 2 1 1 2 1 1 2 1 1 2 3 3 2 3 3 2 1 1 2 1 1 2 3 3 2 2 2 2 2 2 2 2 2 2 1 1 2 1 1 2 2 2 2 2 2 2 1 1 2 3 3 ...
output:
1 1 3 1 1 2 1 1 3 1 1 2 1 1 3 1 1 3 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 3 1 1 2 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 3 1 1 2 1 1 3 1 1 3 1 1 2 1 1 1 1 1 3 1 1 2 1 1 2 1 1 3 1 1 3 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 1 1 1 1 1 1 1 1 3 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 3 1 1 3 ...
result:
ok OK 50000 yes 0 no (50000 test cases)
Test #3:
score: 0
Accepted
time: 35ms
memory: 3576kb
input:
50000 2 89846347117873058 89846347117873058 2 416235892302498917 416235892302498917 2 332154513003612985 332154513003612985 2 43960216631774959 43960216631774959 2 353215896487285554 353215896487285554 2 38296945667390613 38296945667390613 2 209150071115726640 209150071115726640 2 48610805835417777 ...
output:
1 1 89846347117873058 1 1 416235892302498917 1 1 332154513003612985 1 1 43960216631774959 1 1 353215896487285554 1 1 38296945667390613 1 1 209150071115726640 1 1 48610805835417777 1 1 211544111448330513 1 1 25910837432700249 1 1 332285940128117259 1 1 350363936612994860 1 1 243778347549648401 1 1 21...
result:
ok OK 50000 yes 0 no (50000 test cases)
Test #4:
score: 0
Accepted
time: 17ms
memory: 3572kb
input:
33333 3 1 3 2 3 2 3 1 2 1 1 3 1 2 3 3 3 2 1 3 1 2 3 2 1 1 2 3 3 2 3 3 3 1 2 3 3 1 3 2 3 3 2 1 2 2 2 3 3 2 1 2 3 3 3 3 1 2 2 1 1 3 1 2 3 3 1 3 2 3 2 3 1 3 1 3 2 3 1 2 3 3 1 2 3 3 3 1 2 3 2 3 1 3 1 3 2 3 1 3 2 2 1 1 2 3 3 3 3 2 1 2 3 3 3 1 3 2 3 2 3 1 3 2 3 1 3 1 3 2 3 2 3 1 3 2 3 1 3 3 2 1 2 1 1 3 2 ...
output:
2 2 2 1 1 2 2 2 2 1 1 1 1 2 3 2 1 1 2 1 2 1 1 2 3 2 1 1 1 1 1 1 1 3 1 1 3 2 3 2 1 1 2 2 2 1 1 2 1 2 1 1 1 1 2 2 1 2 1 1 1 1 3 2 1 2 1 1 1 1 1 2 3 2 1 1 2 2 2 1 1 2 2 2 2 1 2 2 2 1 1 2 3 2 1 1 2 3 2 1 1 2 1 2 1 1 2 2 2 2 1 2 2 2 1 1 2 2 2 1 1 1 1 1 1 1 3 2 1 2 1 1 1 1 3 2 2 2 1 1 2 2 2 2 1 2 2 2 2 1 ...
result:
ok OK 33333 yes 0 no (33333 test cases)
Test #5:
score: -100
Wrong Answer
time: 23ms
memory: 3612kb
input:
33333 3 1 7 6 3 5 1 4 3 7 3 4 3 6 4 2 3 5 3 6 3 5 3 6 3 7 4 3 3 1 2 3 3 4 3 7 3 2 4 6 3 1 6 7 3 4 5 1 3 1 5 4 2 4 4 2 6 6 3 4 7 3 3 4 2 6 3 1 3 2 3 3 4 7 2 2 2 3 7 3 4 3 2 7 5 3 7 6 1 3 7 3 4 3 4 3 7 3 2 4 6 3 7 1 6 3 3 1 2 3 5 3 6 3 2 6 4 3 6 1 7 3 1 2 3 3 2 1 3 3 5 2 7 3 2 4 6 3 6 3 5 3 5 7 2 2 5 ...
output:
2 2 6 1 1 2 1 4 1 1 2 1 4 1 3 2 1 4 1 2 2 3 5 2 3 2 3 5 2 3 2 1 4 1 3 2 3 2 1 1 2 3 4 2 3 2 3 4 1 2 2 3 6 1 1 2 2 4 2 1 2 2 4 1 1 1 1 4 1 1 6 2 2 4 2 3 2 3 4 2 2 2 2 2 1 1 2 3 4 1 3 1 1 2 2 1 4 1 3 2 2 5 1 2 2 1 6 1 1 2 1 4 1 3 2 3 4 2 3 2 3 4 1 2 2 1 6 1 1 2 1 2 1 1 2 3 5 2 3 2 2 4 1 2 2 3 6 2 1 2 ...
result:
wrong answer game has not ended yet (test case 5)