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