#include "transfer.h"
#include <bits/stdc++.h>
#define ld double
#define ll long long
#define ull unsigned long long
#define llinf 100000000000000000LL // 10^17
#define iinf 2000000000 // 2*10^9
#define pb push_back
#define popb pop_back
#define fi first
#define sc second
#define endl '\n'
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pld pair<ld,ld>
#define sz(a) int(a.size())
#define all(a) a.begin(),a.end()
#define ceri(a,l,r) {for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;}
using namespace std;
vector<int> get_attachment(vector<int> a) {
int n = sz(a);
int x = 0;
vector<int> ans;
for(int i = 0;i<n;i++){
if(a[i]==0) x^=1;
}
ans.pb(x);
x = 0;
ll nn = n+1;
ll d =0;
while(nn>0){
nn/=2;
d++;
}
d--;
for(ll i = 0;i<n;i++){
if(a[i]==0) x^=(i+1);
}
//acerr<<d<<" "<<x<<endl;
while(x>0){
d--;
ans.pb(x&1);
x/=2;
}
while(d--) ans.pb(0);
return ans;
}
//n 4 n/2
vector<int> retrieve(vector<int> a) {
int m = sz(a);
int n = 1;
if(m==11) n = 7;
else if(m==70) n = 63;
else n = 255;
//cerr<<n<<" "<<m<<endl;
vector<int> ans;
ll x = 0;
for(ll i = n+2;i<sz(a);i++){
x+=a[i]*(1<<(i-n-2));
}
ll y = 0;
ll z = 0;
for(ll i = 0;i<n;i++){
ans.pb(a[i]);
if(a[i]==0){
y^=(i+1);
z^=1;
}
}
if(a[n]==z) return ans;
if(x==y) return ans;
x^=y;
ans[x]^=1;
return ans;
}
/*
1
4 010101011
*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
644 KB |
WA in grader: wrong source retrieval |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
2496 KB |
WA in grader: wrong source retrieval |
2 |
Halted |
0 ms |
0 KB |
- |