Submission #843674

#TimeUsernameProblemLanguageResultExecution timeMemory
843674Andrijanikolic73Xor Sort (eJOI20_xorsort)C++17
25 / 100
978 ms19156 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N=1001; int n; int s; vector<pair<int,int>>v; int a[N]; vector<pair<int,int>>V; void zameni(int i,int j){ v.push_back({i,j}); v.push_back({j,i}); v.push_back({i,j}); for(auto it:v)a[it.first]^=a[it.second]; for(auto it:v)V.push_back({it.first,it.second}); v.clear(); } void Swap(int i,int j){ while(j>i){ zameni(j-1,j); j--; } } signed main(){ cin>>n>>s; for(int i=1;i<=n;i++)cin>>a[i]; // kako da zamenim dva suseda ??? for(int i=1;i<=n;i++){ int r=1e18; for(int j=i+1;j<=n;j++){ if(a[i]>a[j]){ r=min(r,a[j]); } } if(r!=1e18){ for(int j=i+1;j<=n;j++){ if(a[j]==r){ Swap(i,j); break; } } } } cout<<V.size(); cout<<endl; for(auto it:V){ cout<<it.first<<" "<<it.second; cout<<endl; } //for(int i=1;i<=n;i++)cout<<a[i]<<" "; } /* 5 1 3 2 8 4 1 */ /* max 40000 operacija s=1 a[i]<a[i+1] s=2 a[i]<=a[i+1] */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...