Submission #1025347

# Submission time Handle Problem Language Result Execution time Memory
1025347 2024-07-16T22:30:17 Z tolbi Xor Sort (eJOI20_xorsort) C++17
0 / 100
1 ms 604 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<int> barr = arr;
	vector<pair<int,int>> ansarr;
	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)){
					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--;
		}
	}
	for (int i = 0; i < ansarr.size(); ++i)
	{
		barr[ansarr[i].first-1]^=barr[ansarr[i].second-1];
	}
	for (int i = 1; i < barr.size(); i++){
		assert(barr[i]>barr[i-1]);
	}
	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)
      |                  ~~^~~~~~~~~~~~~~~
xorsort.cpp:38:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |  for (int i = 1; i < barr.size(); i++){
      |                  ~~^~~~~~~~~~~~~
xorsort.cpp:42: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]
   42 |  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 0 ms 348 KB Output is correct
3 Runtime error 1 ms 604 KB Execution killed with signal 6
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Runtime error 1 ms 604 KB Execution killed with signal 6
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Runtime error 1 ms 604 KB Execution killed with signal 6
4 Halted 0 ms 0 KB -