#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |