Submission #1196051

#TimeUsernameProblemLanguageResultExecution timeMemory
1196051JungPSData Transfer (IOI19_transfer)C++20
0 / 100
7 ms3260 KiB
#include "transfer.h"
#include<iostream>
using namespace std;
vector<int> get_attachment(vector<int> source) {
	vector<int> ss=source;
	int lim,tmp;
	if(source.size()<=64) lim=7;
	else lim=9;
	for(int i=0;i<lim;++i){
		tmp=0;
		for(int cur=(1<<i);cur<source.size();cur+=(1<<(i+1))){
			for(int j=0;j<(1<<i);++j){
				tmp+=source[cur+j-1];
			}
		}
		ss.push_back(tmp);
	}
	return ss;
}

vector<int> retrieve(vector<int> data) {
	int lim,tmp;
	if(data.size()<=71) lim=7;
	else lim=9;
	int ans=0;
	for(int i=0;i<lim;++i){
		tmp=0;
		for(int cur=(1<<i);cur<data.size()-lim;cur+=(1<<(i+1))){
			for(int j=0;j<(1<<i);++j){
				tmp+=data[cur+j-1];
			}
		}
		ans+=(1<<i)*(!(tmp==data[data.size()-lim+i]));
	}
	--ans;
	if(ans>=0) data[ans]=1-data[ans];
	return vector<int>(data.begin(), data.end()-lim);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...