Submission #146888

#TimeUsernameProblemLanguageResultExecution timeMemory
146888popovicirobertParrots (IOI11_parrots)C++14
81 / 100
26 ms2288 KiB
#include "encoder.h" #include "encoderlib.h" #include <bits/stdc++.h> using namespace std; void encode(int n, int M[]) { if(n == 64) { for(int i = 0; i < n; i++) { int cur = (i << 2); for(int j = 0; j < 8; j++) { send(cur | (M[i] >> 6)); } for(int j = 0; j < 4; j++) { send(cur | ((M[i] >> 4) & 3)); } for(int j = 0; j < 2; j++) { send(cur | ((M[i] >> 2) & 3)); } send(cur | (M[i] & 3)); } return ; } 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); if(n == 64) { for(int i = 0; i < l; i++) { pos[X[i] >> 2].push_back(X[i] & 3); } for(int i = 0; i < n; i++) { map <int, int> mp; for(auto it : pos[i]) { mp[it]++; } int cur = 0; for(int j = 3; j >= 0; j--) { for(auto &it : mp) { if(it.second >= (1 << j)) { cur = (cur << (2 * j)) + it.first; it.second -= (1 << j); break; } } } output(cur); } return ; } 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...