Submission #595988

#TimeUsernameProblemLanguageResultExecution timeMemory
595988fuad27Parrots (IOI11_parrots)C++17
81 / 100
8 ms1364 KiB
#include "encoder.h" #include "encoderlib.h" #include<bits/stdc++.h> using namespace std; void encode(int N, int M[]) { int cntone=0,cntzero=0; for(int i = 0;i<N;i++) { for(int j = 0;j<8;j++) { if(M[i]&(1ll<<j))cntone++; else cntzero++; } } if(cntone+3 <= cntzero) { for(int i = 0;i<N;i++) { for(int j = 0;j<8;j++) { if(M[i]&(1ll<<j)) { if(i < 32) { long long num = i*(1ll<<3)+j; send(num); } else { long long i_=i-32; long long num = i_*(1ll<<3)+j; send(num); send(num); } } } } } else { send(0); send(0); send(0); for(int i = 0;i<N;i++) { for(int j = 0;j<8;j++) { if(M[i]&(1ll<<j)) { if(i < 32) { long long num = i*(1ll<<3)+j; send(num); } else { long long i_=i-32; long long num = i_*(1ll<<3)+j; send(num); send(num); } } } } } }
#include "decoder.h" #include "decoderlib.h" #include<bits/stdc++.h> using namespace std; void decode(int N, int L, int X[]) { int ans[N]; for(int i = 0;i<N;i++)ans[i]=0; map<int,int> cnt; bool check=(cnt[0]>=3); for(int i = 0;i<L;i++)cnt[X[i]]++; if(cnt[0]>=3)cnt[0]-=3; for(int i = 0;i<L;i++) { if(cnt[X[i]]==0)continue; if(cnt[X[i]]==1) { ans[X[i]/8]|=(1ll<<(X[i]%8)); } else if(cnt[X[i]]==2) { ans[X[i]/8+32]|=(1ll<<(X[i]%8)); } else if(cnt[X[i]]==3){ ans[X[i]/8+32]|=(1ll<<(X[i]%8)); ans[X[i]/8]|=(1ll<<(X[i]%8)); } } for(int i = 0;i<N;i++){ long long k = 0; if(check) { for(int j =0;j<8;j++) { k|=(1ll<<j); if(ans[i]&(1ll<<j))k-=(1ll<<j); } } else k = ans[i]; output(k); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...