Submission #1309678

#TimeUsernameProblemLanguageResultExecution timeMemory
1309678codergXor Sort (eJOI20_xorsort)C++20
0 / 100
1 ms336 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)

xorsort.cpp: In function 'void setIO(std::string)':
xorsort.cpp:10:54: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 | void setIO(string name = ""){if(name.size()){ freopen((name + ".in").c_str(), "r", stdin);freopen((name + ".out").c_str(), "w", stdout);}}
      |                                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xorsort.cpp:10:98: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 | void setIO(string name = ""){if(name.size()){ freopen((name + ".in").c_str(), "r", stdin);freopen((name + ".out").c_str(), "w", stdout);}}
      |                                                                                           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...