Submission #1200043

#TimeUsernameProblemLanguageResultExecution timeMemory
1200043JungPSData Transfer (IOI19_transfer)C++20
0 / 100
7 ms3256 KiB
#include "transfer.h"
#include<iostream>
using namespace std;
vector<int> get_attachment(vector<int> source) {
	int n,ck;
	vector<int> ss=source;
	if(source.size()==255) n=255,ck=9;
	else n=63,ck=7;
	for(int i=0;i<ck;++i){
		int tmp=0;
		for(int cur=(1<<i);cur<=source.size();cur+=(1<<(i+1))){
			for(int j=0;j<(1<<i);++j){
				//cout << cur+j-1 << " ";
				tmp+=source[cur+j-1];
			}
		}
		//cout << endl;
		ss.push_back(tmp%2);
	}
	return ss;
}

std::vector<int> retrieve(std::vector<int> data) {
	int ans=0;
	int n,ck;
	if(data.size()>=255) n=255,ck=9;
	else n=63,ck=7;
	for(int i=0;i<ck;++i){
		int tmp=0;
		for(int cur=(1<<i);cur<=n;cur+=(1<<(i+1))){
			for(int j=0;j<(1<<i);++j){
				tmp+=data[cur+j-1];
			}
		}
		if(data[n+i]!=tmp%2){
			ans+=(1<<i);
			//cout << i << " ";
		}
	}
	//cout << "ANS = " << ans-1;
	data[ans-1]=1-data[ans-1];
	return std::vector<int>(data.begin(), data.end()-ck);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...