Submission #1262651

#TimeUsernameProblemLanguageResultExecution timeMemory
1262651iordache_Xor Sort (eJOI20_xorsort)C++20
40 / 100
4 ms1472 KiB
#include <bits/stdc++.h>
#define pb push_back
#define int long long
using namespace std;
const int N=1e3+5,LOG=20;
int v[N];
signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,cer;
    cin>>n>>cer;
    for(int i=1;i<=n;++i) cin>>v[i];
    vector<pair<int,int>> sol;
    for(int b=0;b<LOG;++b)
    {
        for(int i=1;i+1<=n;++i)
        {
            if(!(v[i]&(1<<b))) continue;
            if(v[i+1]&(1<<b))
            {
                sol.pb({i,i+1});
                v[i]^=v[i+1];
            }
            else
            {
                sol.pb({i+1,i});
                v[i+1]^=v[i];
                sol.pb({i,i+1});
                v[i]^=v[i+1];
            }
        }
    }
    //for(int i=1;i<=n;++i) cout<<v[i]<<" ";
    //cout<<'\n';
    cout<<sol.size()<<'\n';
    for(auto x:sol) cout<<x.first<<" "<<x.second<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...