Submission #146886

#TimeUsernameProblemLanguageResultExecution timeMemory
146886popovicirobert앵무새 (IOI11_parrots)C++14
81 / 100
10 ms1776 KiB
#include "encoder.h" #include "encoderlib.h" #include <bits/stdc++.h> using namespace std; void encode(int n, int M[]) { for(int i = 0; i < n; i++) { int cur = (i << 3); for(int j = 0; j < 4; j++) { send(cur | (M[i] >> 5)); } for(int j = 0; j < 2; j++) { send(cur | ((M[i] >> 2) & ((1 << 3) - 1))); } send(cur | (M[i] & ((1 << 2) - 1))); } }
#include "decoder.h" #include "decoderlib.h" #include <bits/stdc++.h> using namespace std; void decode(int n, int l, int X[]) { vector < vector <int> > pos(l); for(int i = 0; i < l; i++) { pos[X[i] >> 3].push_back(X[i] & ((1 << 3) - 1)); } for(int i = 0; i < n; i++) { map <int, int> mp; for(auto it : pos[i]) { mp[it]++; } int cur = 0; for(auto &it : mp) { if(it.second >= 4) { cur = (cur << 3) + it.first; it.second -= 4; break; } } for(auto &it : mp) { if(it.second >= 2) { cur = (cur << 3) + it.first; it.second -= 2; break; } } for(auto it : mp) { if(it.second) { cur = (cur << 2) + it.first; break; } } output(cur); } }
#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...