Submission #969978

#TimeUsernameProblemLanguageResultExecution timeMemory
969978bachhoangxuanQuestion (Grader is different from the original contest) (CEOI14_question_grader)C++17
75 / 100
3030 ms25192 KiB
#include<bits/stdc++.h> using namespace std; namespace Encode{ bool init=false; int mask[1005]; void build(int N){ int cnt=0;init=true; for(int i=1;i<=N;i++){ while(true){ int x=__builtin_popcount(cnt); if(x<=0 || x>=9) cnt++; else break; } int x=8-__builtin_popcount(cnt); mask[i]=cnt*8+x;cnt++; } } } int encode (int n, int x, int y) { if(!Encode::init) Encode::build(n); int mx=Encode::mask[x]; int my=Encode::mask[y]; for(int j=0;j<=12;j++) if((mx>>j&1) && !(my>>j&1)) return j+1; return 0; }
#include<bits/stdc++.h> using namespace std; namespace Decode{ bool init=false; int mask[1005]; void build(int N){ int cnt=0;init=true; for(int i=1;i<=N;i++){ while(true){ int x=__builtin_popcount(cnt); if(x<=0 || x>=9) cnt++; else break; } int x=8-__builtin_popcount(cnt); mask[i]=cnt*8+x;cnt++; } } } int decode (int n, int q, int h) { if(!Decode::init) Decode::build(n); return (Decode::mask[q]>>(h-1)&1); }
#Verdict Execution timeMemoryGrader output
Fetching results...