Submission #128011

#TimeUsernameProblemLanguageResultExecution timeMemory
128011UtahaBroken Device (JOI17_broken_device)C++14
100 / 100
65 ms3320 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; #define pb push_back void Anna( int N, long long X, int K, int P[] ){ int partner[150]; srand(123987654); vector<int> s; vector<int> v; for(int i=0;i<150;i++) v.pb(i); random_shuffle(v.begin(),v.end()); for(int i=0;i<150;i+=2){ partner[v[i]]=v[i+1]; partner[v[i+1]]=v[i]; s.pb(v[i]); } // for(int i=0;i<N;i++) cout<<partner[i]<<" \n"[i==N-1]; X^=0x84d9302917c854LL; // std::cout<<X<<'\n'; // for(long long i=X;i;i/=3) std::cout<<i%3; // std::cout<<'\n'; bool ret[150]={0}; bool notused[150]={0}; for(int i=0;i<K;i++){ notused[P[i]]=1; } int pt=38; for(int i:s){ long long type=X%3; if(type==0){ if(notused[i]) continue; ret[i]=1; ret[partner[i]]=0; } else if(type==1){ if(notused[partner[i]]) continue; ret[i]=0; ret[partner[i]]=1; } else{ if(notused[i]||notused[partner[i]]) continue; ret[i]=ret[partner[i]]=1; } // std::cout<<X%3<<'\n'; X/=3; if(X==0) break; pt--; if(pt==0) break; } // for(int i=0;i<N;i++) std::cout<<ret[i]; // std::cout<<'\n'; for(int i=0;i<N;i++) Set(i,ret[i]); }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; #define pb push_back long long Bruno( int N, int A[] ){ int partner2[150]; vector<int> s2; srand(123987654); vector<int> v; for(int i=0;i<150;i++) v.pb(i); random_shuffle(v.begin(),v.end()); for(int i=0;i<150;i+=2){ partner2[v[i]]=v[i+1]; partner2[v[i+1]]=v[i]; s2.pb(v[i]); } // for(int i=0;i<N;i++) cout<<partner2[i]<<" \n"[i==N-1]; long long ret=0; long long base=1; for(int i:s2){ if(A[i]==0&&A[partner2[i]]==0) continue; int type=-1; if(A[i]==1){ if(A[partner2[i]]==1) type=2; else type=0; } else type=1; // std::cout<<"Bruno: "<<type<<'\n'; ret+=base*type; base*=3; } // std::cout<<ret<<'\n'; return ret^0x84d9302917c854LL; }
#Verdict Execution timeMemoryGrader output
Fetching results...