# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
421386 | 2021-06-09T06:22:48 Z | Andyvanh1 | Data Transfer (IOI19_transfer) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "tranfer.h" using namespace std; #define vt vector #define INF 0x3f3f3f3f #define pb push_back #define all(x) (x).begin(),(x).end() #define rep(i,x) for(int (i) = 0;(i) < (x); (i)++) #define MOD 1000000007 typedef vt<int> vi; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; bool jump(int x){ cout<<x<<endl; bool ans; cin>>ans; return ans; } vi get_attachment(vi source){ vi ans(7); int x = 0; int ct = 0; for(int i = 1; i <= 63; i++){ x^=i*(source[i-1]); } for(int i = 0; i < 6; i++){ ans[i] = ((1<<i)&x ? 1 : 0); if(ans[i])ct++; } ans[6] = ct&1; return ans; } vi retrieve(vi data){ vi ans1(63); vi ans2(6); int ans3; for(int i = 0; i < 63; i++){ ans1[i] = data[i]; } for(int i = 63; i < 69; i++){ ans2[i-63] = data[i]; } ans3 = data[69]; int x = 0; int y = 0; int z = 0; int ct = 0; for(int i = 1; i <= 63; i++){ x^=i*(ans1[i-1]); } for(int i = 0; i < 6; i++){ y+=(1<<i)*ans2[i]; } if(x==y)return ans1; if(y&1!=ans3){ return ans1; }else{ ans1[(x^y)-1]^=1; return ans1; } }