Submission #351550

#TimeUsernameProblemLanguageResultExecution timeMemory
351550amunduzbaevParrots (IOI11_parrots)C++14
81 / 100
7 ms1568 KiB
#include "encoder.h"
#include "encoderlib.h"

#ifndef EVAL
#include "grader.cpp" 
#endif

#include <bits/stdc++.h>
using namespace std;


void encode(int N, int M[]){
	vector<int> ans(N*8);
	for(int i=0;i<N;i++){
		for(int j=0;j<8;j++){
			ans[i*8 + j] = (M[i]>>j & 1);
		}
	}
	
	for(int i=1;i<8*N;i++){
		ans[i] += ans[i-1];
	}if(ans[0]){
		for(int i=0;i<8*N;i++){
			send(ans[i] - 1);
		}send(255);
	}else{
		for(int i=0;i<8*N;i++) send(ans[i]);
	}
}
#include "decoder.h"
#include "decoderlib.h"

#ifndef EVAL
#include "grader.cpp" 
#endif

#include <bits/stdc++.h>
using namespace std;

void decode(int n, int l, int ans[]){
	sort(ans, ans+l);
	//for(int i=0;i<l;i++) cout<<ans[i]<<" ";
	if(l > n*8) for(int i=0;i<n*8;i++) ans[i]++;
	//cout<<"\n"<<n*8<<" "<<l<<"\n";
	
	for(int i=0;i<n*8;){
		int tmp = 0;
		for(int j=0;j<8; i++, j++){
			int xx = ans[i];
			if(i) xx -= ans[i-1];
			if(xx) tmp |= (1<<j);
		}
		output(tmp);
	}

}
#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...