Submission #67291

#TimeUsernameProblemLanguageResultExecution timeMemory
67291RezwanArefin01Parrots (IOI11_parrots)C++17
98 / 100
15 ms2440 KiB
#include "encoder.h" #include "encoderlib.h" #include <bits/stdc++.h> using namespace std; void encode(int N, int M[]) { vector<pair<int, int> > v; int one = 0, zero = 0; for(int i = 0; i < 4 * N; i++) { int c = (M[i / 4] >> ((3 - (i % 4)) * 2)) & 3; v.emplace_back(i, c); one += c; zero += 3 - c; } if(zero < one) { for(auto &x : v) x.second = 3 - x.second; send(255); send(255); send(255); send(255); } for(auto &x : v) while(x.second--) send(x.first); }
#include "decoder.h" #include "decoderlib.h" #include <bits/stdc++.h> using namespace std; void decode(int N, int L, int X[]) { int a[256]; memset(a, 0, sizeof a); int zero = 0; for(int i = 0; i < L; i++) a[X[i]]++; if(a[255] >= 4) { a[255] -= 4, zero = 1; } for(int i = 0; i < 4 * N && zero; i++) a[i] = 3 - a[i]; for(int i = 0; i < N; i++) { int num = 0; for(int j = i * 4; j < (i + 1) * 4; j++) num = num * 4 + a[j]; output(num); } }
#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...