| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1309678 | coderg | Xor Sort (eJOI20_xorsort) | C++20 | 1 ms | 336 KiB |
#include "bits/stdc++.h"
using namespace std;
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define pb push_back
void setIO(string name = ""){if(name.size()){ freopen((name + ".in").c_str(), "r", stdin);freopen((name + ".out").c_str(), "w", stdout);}}
#define F(i,l,r) for(int i=(l);i<(r);++i)
#define FR(i,l,r) for(int i=(l);i>=(r);--i)
typedef long long ll;
const int maxn=2005;
const int mod=1e9+7;
//const ll inf=1e20;
void solve(){
int n,s;
cin>>n>>s;
vector<int> a(n);
F(i,0,n)cin>>a[i];
vector<pii> ops;
F(b,0,20){
int zeros=0;
for(int x:a){
if(!((x>>b)&1))zeros++;
}
F(i,0,zeros){
if((a[i]>>b)&1){
if(i+1<n){
a[i+1]^=a[i];
ops.pb(mp(i+2,i+1));
}
}
}
FR(i,n-1,zeros){
if(!((a[i]>>b)&1)){
if(i-1>=0){
a[i-1]^=a[i];
ops.pb(mp(i,i+1));
}
}
}
}
cout<<ops.size()<<'\n';
for(auto &x:ops)cout<<x.fi<<' '<<x.se<<'\n';
}
signed main() {
ios_base::sync_with_stdio(0);cin.tie(nullptr);
// setIO(""");
int tt=1;
// cin>>tt;
//cout<<fixed<<setprecision(20);
while(tt--)solve();
return 0;
}
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... | ||||
