Submission #554600

#TimeUsernameProblemLanguageResultExecution timeMemory
554600uroskData Transfer (IOI19_transfer)C++14
100 / 100
103 ms2500 KiB
#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;} #define here cerr<<"============\n"; 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]==1) 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]==1) x^=(i+1); } //cerr<<x<<endl; //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+1;i<sz(a);i++){ x+=a[i]*(1<<(i-n-1)); } ll y = 0; ll z = 0; for(ll i = 0;i<n;i++){ ans.pb(a[i]); if(a[i]==1){ y^=(i+1); z^=1; } } if(a[n]==z) return ans; if(x==y) return ans; //here; //cerr<<x<< " "<<y<<endl; x^=y; x--; ans[x]^=1; return ans; } /* 1 4 010101011 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...