# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1025340 | tolbi | Xor Sort (eJOI20_xorsort) | C++17 | 41 ms | 1120 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n,s;cin>>n>>s;
vector<int> arr(n);
for (int i = 0; i < n; ++i)
{
cin>>arr[i];
}
vector<pair<int,int>> ansarr;
for (int bit = 19; bit >= 0; bit--){
for (int i = 0; i+1 < n; i++){
if (arr[i]&(1LL<<bit)){
if (arr[i+1]&(1LL<<bit)){
ansarr.push_back({i+1,i+2});
arr[i]^=arr[i+1];
}
else {
ansarr.push_back({i+2,i+1});
ansarr.push_back({i+1,i+2});
arr[i+1]^=arr[i];
arr[i]^=arr[i+1];
}
}
}
if (n>1 && arr[n-1]&(1LL<<bit)){
n--;
}
}
cout<<ansarr.size()<<endl;
for (int i = 0; i < ansarr.size(); ++i)
{
cout<<ansarr[i].first<<" "<<ansarr[i].second<<endl;
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |