QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#599278#9176. Non-Interactive NimfosovWA 33ms3620kbC++141.2kb2024-09-29 02:58:462024-09-29 02:58:46

Judging History

你现在查看的是最新测评结果

  • [2024-09-29 02:58:46]
  • 评测
  • 测评结果:WA
  • 用时:33ms
  • 内存:3620kb
  • [2024-09-29 02:58:46]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

#define INF 0x3f3f3f3f
#define LNF (ll) 0x3f3f3f3f3f3f3f3f 

#define MOD 998244353
#define N 220

int main() {
#ifdef TEST
    freopen("zz.in", "r+", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);    

    int t; cin >> t;
    while (t --) {
        int n; cin >> n;
        vector<ll> a(n);
        for (int i = 0; i < n; ++ i) cin >> a[i];
        vector<pair<int, int>> moves;
        bool possible = 1;
        for (int k = 60; k >= 0; -- k) {
            vector<int> s;
            for (int i = 0; i < n; ++ i) {
                if ((a[i] >> k) & 1) s.emplace_back(i);
            }
            
            if (s.empty()) continue;
            if (s.size() != 2) {
                possible = 0;
                break;
            }
            moves.emplace_back(s[0]+1, a[s[0]]);
            a[s[1]] ^= a[s[0]];
            a[s[0]] = 0;
        } 
        if (!possible) {
            cout << -1 << '\n';
        } else {
            cout << moves.size() << '\n';
            for (auto [p, x] : moves) cout << p << ' ' << x << '\n';
        }
    }
}   

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3516kb

input:

2
4
4 2 7 1
4
1 1 1 1

output:

3
1 4
2 2
3 1
-1

result:

ok OK 1 yes 1 no (2 test cases)

Test #2:

score: 0
Accepted
time: 25ms
memory: 3620kb

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: -100
Wrong Answer
time: 33ms
memory: 3524kb

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 -732706910
1
1 -1217049499
1
1 236948281
1
1 -2003431697
1
1 -2027597006
1
1 -2105754475
1
1 -1382432976
1
1 907069617
1
1 -1590423279
1
1 -184398503
1
1 1362194955
1
1 -538128596
1
1 -1851726319
1
1 1712060750
1
1 1654165883
1
1 -1342859856
1
1 -1453378331
1
1 401622420
1
1 -664206506
1
1 -2108...

result:

wrong answer Integer parameter [name=x] equals to -732706910, violates the range [1, 89846347117873058] (test case 1)