Submission #1092364

# Submission time Handle Problem Language Result Execution time Memory
1092364 2024-09-23T22:34:02 Z efishel Xor Sort (eJOI20_xorsort) C++17
40 / 100
5 ms 1496 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;
 
const ll MAXN = 1E3+16;
ll th[MAXN];
vii ans;
vll ve;
void fop (ll i, ll j) {
    ans.push_back({ i, j });
    ve[i] ^= ve[j];
}
 
int main () {
    cin.tie(nullptr) -> sync_with_stdio(false);
    ll n, s;
    cin >> n >> s;
    ve = vll(n);
    for (ll &i : ve) cin >> i;
    ll nend = n;
    for (ll bit = 19; bit >= 0; bit--) {
        vll th = ve;
        for (ll &i : th) i = i>>bit&1;
        ll j = find(th.begin(), th.begin()+nend, 1) - th.begin();
        for (ll i = j+1; i < nend; i++) {
            if (th[i]) continue;
            fop(i, i-1);
        }
        for (ll i = j+1; i < nend; i++) {
            fop(i-1, i);
        }
        if (j != nend) nend--;
    }
    cout << ans.size() << '\n';
    for (auto [i, j] : ans) cout << i+1 << ' ' << j+1 << '\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Incorrect 0 ms 348 KB Not sorted
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Incorrect 0 ms 348 KB Not sorted
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 4 ms 1236 KB Output is correct
6 Correct 3 ms 1240 KB Output is correct
7 Correct 3 ms 1112 KB Output is correct
8 Correct 4 ms 1240 KB Output is correct
9 Correct 3 ms 1240 KB Output is correct
10 Correct 4 ms 1236 KB Output is correct
11 Correct 4 ms 1240 KB Output is correct
12 Correct 4 ms 1492 KB Output is correct
13 Correct 4 ms 1240 KB Output is correct
14 Correct 4 ms 1240 KB Output is correct
15 Correct 5 ms 1496 KB Output is correct