QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#519088 | #9176. Non-Interactive Nim | zrzring | WA | 22ms | 3872kb | C++20 | 1.8kb | 2024-08-14 16:14:15 | 2024-08-14 16:14:16 |
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];
}
if (n == 2) {
std::cout << 1 << '\n';
std::cout << 1 << ' ' << a[1] << '\n';
return;
}
std::vector<std::vector<i64>> bit(60);
for (int i = 1; i <= n; i++) {
for (int j = 0; j < 60; j++) {
if ((a[i] >> j & 1ll) == 1ll) {
bit[j].push_back(i);
}
}
}
std::vector<A2> ans;
for (int i = 59; i >= 0; i--) {
if (bit[i].empty()) continue;
if (bit[i].size() > 2) {
std::cout << -1 << '\n';
return;
}
if (a[bit[i][0]] < a[bit[i][1]]) {
std::swap(bit[i][0], bit[i][1]);
}
ans.push_back({bit[i][0], a[bit[i][1]]});
}
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;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3872kb
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: 11ms
memory: 3580kb
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: 20ms
memory: 3680kb
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: 3536kb
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 2 1 2 2 2 2 1 1 1 1 2 3 2 3 1 2 1 2 1 1 2 3 2 3 1 1 1 1 1 1 3 1 1 3 2 3 2 3 1 2 2 2 2 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 3 1 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 3 2 3 1 2 3 2 3 1 2 1 2 1 1 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 1 1 1 1 1 3 2 1 2 1 1 1 1 3 2 2 2 2 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: 22ms
memory: 3584kb
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:
3 2 6 2 6 2 1 2 1 4 1 1 3 1 4 1 3 1 3 2 1 4 1 2 3 3 5 3 3 1 3 3 3 5 3 3 1 3 3 1 4 1 3 1 3 2 3 2 3 1 3 3 4 3 3 3 3 2 3 4 3 2 3 3 6 3 6 3 1 2 2 4 2 1 2 2 4 2 1 1 1 4 1 1 6 3 2 4 2 3 2 3 2 3 4 3 2 2 2 2 2 1 3 3 4 3 3 3 3 1 1 2 3 1 4 1 3 1 3 3 2 5 2 2 2 5 3 1 6 1 6 1 1 3 1 4 1 3 1 3 3 3 4 3 3 3 3 2 3 4 ...
result:
wrong answer Integer parameter [name=x] equals to 6, violates the range [1, 1] (test case 1)