Submission #1044862

#TimeUsernameProblemLanguageResultExecution timeMemory
1044862marXor Sort (eJOI20_xorsort)C++14
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; int arr[10008]; int main() { int n,s; cin>>n>>s; for(int i=0; i < n; i++) { cin>>arr[i]; } vector<pair<int,int>> ans; if(s==1) { for(int bit = 22; bit >= 0; bit--){ for(int i = 0; i+1 < n; i++){ if(arr[i]&(1LL<<bit)){ if (arr[i+1]&(1LL<<bit)){ ans.push_back({i+1,i+2}); arr[i]^=arr[i+1]; } else { ans.push_back({i+2,i+1}); ans.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--; } } }else{ } cout<<ans.size()<<endl; for (int i = 0; i < ans.size(); i++){ cout<<ans[i].first<<" "<<ans[i].second<<endl; } }

Compilation message (stderr)

xorsort.cpp: In function 'int main()':
xorsort.cpp:34:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |  for (int i = 0; i < ans.size(); i++){
      |                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...