| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 952384 | SmuggingSpun | Data Transfer (IOI19_transfer) | C++14 | 46 ms | 3012 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "transfer.h"
#include<bits/stdc++.h>
using namespace std;
vector<int>get_attachment(vector<int>source){
	int BIT = (source.size() == 63 ? 6 : 8), x = 0, cnt_1 = 0;
	for(int i = 0; i < source.size(); i++){
		if(source[i] == 1){
			x ^= i + 1;
			cnt_1++;
		}
	}
	vector<int>data;
	for(int i = 0; i < BIT; i++){
		if(1 << i & x){
			data.emplace_back(1);
		}
		else{
			data.emplace_back(0);
		}
	}
	data.emplace_back(cnt_1 & 1);
	return data;
}
vector<int>retrieve(vector<int>data){
	int BIT = (data.size() == 70 ? 6 : 8), n = (BIT == 6 ? 63 : 255), sum_xor = 0, data_xor = 0, cnt_1 = 0;
	vector<int>ans(n);
	for(int i = 0; i < n; i++){
		if(data[i] == 1){
			sum_xor ^= i + 1;
			cnt_1++;
		}
		ans[i] = data[i];
	}
	for(int i = 0; i < BIT; i++){
		if(data[n + i] == 1){
			data_xor |= 1 << i;
		}
	}
	if(data_xor != sum_xor && (cnt_1 & 1) != data.back()){
		ans[(data_xor ^ sum_xor) - 1] ^= 1;
	}
	return ans;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
