Submission #743722

#TimeUsernameProblemLanguageResultExecution timeMemory
743722borisAngelovXor Sort (eJOI20_xorsort)C++17
0 / 100
1 ms324 KiB
#include <iostream> #include <vector> using namespace std; const int maxn = 1005; int n, s; int a[maxn]; void fastIO() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } int main() { fastIO(); cin >> n >> s; for (int i = 1; i <= n; ++i) { cin >> a[i]; } vector<pair<int, int>> ans; int last = 0; for (int i = n; i > 1; --i) { int idx = 1; for (int j = 1; j <= i; ++j) { if ((a[j] ^ last) > (a[idx] ^ last)) { idx = j; } } for (int j = 1; j <= i; ++j) { if (j != n) { ans.push_back(make_pair(j, j + 1)); a[j] = (a[j] ^ a[j + 1]); } } for (int j = idx + 1; j <= i; ++j) { ans.push_back(make_pair(j, j - 1)); a[j] = (a[j] ^ a[j - 1]); } for (int j = idx - 1; j > 1; --j) { ans.push_back(make_pair(j - 1, j)); a[j - 1] = (a[j - 1] ^ a[j]); } for (int j = 1; j <= n; ++j) { cout << a[j] << ' '; } cout << endl; last = a[i]; } ans.push_back(make_pair(1, 2)); a[1] = (a[1] ^ a[2]); /*for (int i = 1; i <= n; ++i) { cout << a[i] << ' '; } cout << endl;*/ cout << ans.size() << endl; for (auto [x, y] : ans) { cout << x << ' ' << y << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...