Submission #61088

#TimeUsernameProblemLanguageResultExecution timeMemory
61088mhndParrots (IOI11_parrots)C++14
81 / 100
13 ms2528 KiB
#include "encoder.h" #include "encoderlib.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e5+50; const ll oo = 1e18; const ll mod = 1e9+7; void encode(int N, int M[]) { if(N<=32){ for(int i=0;i<N;i++) for(int k=0;k<8;k++) if((M[i]>>k)&1)send(N*k+i); }else{ for(int i=0;i<32;i++){ for(int k=0;k<8;k++){ if(i+32<N){ if((M[i]>>k)&1 && (M[i+32]>>k)){ send(8*i+k); }else if((M[i+32]>>k)&1){ send(8*i+k); send(8*i+k); send(8*i+k); }else if((M[i]>>k)&1){ send(8*i+k); send(8*i+k); } }else if((M[i]>>k)&1)send(8*i+k); } } } }
#include "decoder.h" #include "decoderlib.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e5+50; const ll oo = 1e18; const ll mod = 1e9+7; int num[200],f[256]; void decode(int N, int L, int X[]){ memset(num,0,sizeof(num)); memset(f,0,sizeof(f)); if(N<=32){ for(int i=0;i<L;i++)num[X[i]%N] += (1<<(X[i]/N)); }else{ for(int i=0;i<L;i++)f[X[i]]++; for(int i=0;i<256;i++){ if(f[i]==3){ num[X[i]/8+32] |= (1<<(i%8)); }else if(f[i]==2){ num[X[i]/8] |= (1<<(i%8)); }else if(f[i]==1){ num[X[i]/8] |= (1<<(i%8)); num[(X[i]/8)+32] |= (1<<(i%8)); } } } for(int i=0;i<N;i++)output(num[i]); }
#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...