Submission #1025341

# Submission time Handle Problem Language Result Execution time Memory
1025341 2024-07-16T22:20:24 Z tolbi Xor Sort (eJOI20_xorsort) C++17
40 / 100
48 ms 1040 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,s;cin>>n>>s;
	vector<int> arr(n);
	for (int i = 0; i < n; ++i)
	{
		cin>>arr[i];
	}
	vector<pair<int,int>> ansarr;
	for (int bit = 19; bit >= 0; bit--){
		for (int i = 0; i+1 < n; i++){
			if (arr[i]&(1LL<<bit)){
				if (arr[i+1]&(1LL<<bit)){
					ansarr.push_back({i+1,i+2});
					arr[i]^=arr[i+1];
				}
				else {
					ansarr.push_back({i+2,i+1});
					ansarr.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--;
		}
	}
	cout<<ansarr.size()<<endl;
	for (int i = 0; i < ansarr.size(); ++i)
	{
		cout<<ansarr[i].first<<" "<<ansarr[i].second<<endl;
	}
}

Compilation message

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 < ansarr.size(); ++i)
      |                  ~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 2 ms 344 KB Not sorted
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 2 ms 344 KB Not sorted
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Correct 6 ms 572 KB Output is correct
5 Correct 31 ms 996 KB Output is correct
6 Correct 31 ms 980 KB Output is correct
7 Correct 31 ms 992 KB Output is correct
8 Correct 38 ms 980 KB Output is correct
9 Correct 31 ms 1040 KB Output is correct
10 Correct 31 ms 908 KB Output is correct
11 Correct 32 ms 980 KB Output is correct
12 Correct 33 ms 944 KB Output is correct
13 Correct 48 ms 1012 KB Output is correct
14 Correct 33 ms 940 KB Output is correct
15 Correct 43 ms 1036 KB Output is correct