Submission #250490

#TimeUsernameProblemLanguageResultExecution timeMemory
250490kostia244Parrots (IOI11_parrots)C++17
98 / 100
11 ms1792 KiB
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;

void encode(int n, int b[]) {
	vector<int> m[2];
	for(int f = 0; f < 2; f++)
	for(int i = 0; i < n; i++) {
		int t = b[i], g = 0;
		if(f) t ^= 255;
		while(t) {
			while(t&3) {
				m[f].push_back(4*i + g);
				t--;
			}
			t>>=2;
			g++;
		}
	}
	for(int i = 0; i < n; i++) m[1].push_back(69);
	if(m[0].size() > m[1].size()) swap(m[0], m[1]);
	for(auto i : m[0]) send(i);
	//for(auto i : m[0]) cout << i << " "; cout << '\n';
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;

void decode(int n, int l, int X[]) {
	vector<int> res(n);
	map<int, int> cnt;
	for(int i = 0; i < l; i++) cnt[X[i]]++;
	int rev = 0;
	for(auto i : cnt) {
		if(i.second >= n) i.second -= n, rev = 255;
		res[i.first/4] += i.second<<(2*(i.first&3));
	}
	for(int i = 0; i < n; i++) output(res[i]^rev);
}
#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...