#include "transfer.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> get_attachment(vector<int> source) {
vector<int> sequence(((int)source.size()==63? 6:8), 0);
for(int i = 1;i<=source.size();i++){
for(int j = 0;j<8;j++){
if((i>>j)&1){
sequence[j]^=source[i-1];
}
}
}
int x = 0;
for(auto thing:sequence){
cout<<thing;
x^=thing;
}
cout<<'\n';
sequence.push_back(x);
return sequence;
}
vector<int> retrieve(vector<int> data) {
vector<int> totx(8, 0);
int rs = (data.size()<100 ? 63:255);
int rsa = (data.size()<100 ? 6:8);
for(int i = 1;i<=rs;i++){
for(int j = 0;j<9;j++){
if((i>>j)&1){
totx[j]^=data[i-1];
}
}
}
int x = 0;
for(int i = rs;i<=rs+rsa;i++){
x^=data[i];
}
if(x==1){
for(int i = 0;i<rsa+1;i++){
data.pop_back();
}
return data;
}
for(int i = rs;i<rs+rsa;i++){
totx[i-rs]^=data[i];
}
vector<int> ans;
int t= 0;
for(int i = 0;i<rsa;i++){
if(totx[i])t|=(1<<i);
}
if(t!=0)data[t-1]^=1;
for(int i = 0;i<rsa+1;i++){
data.pop_back();
}
return data;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |