제출 #596023

#제출 시각아이디문제언어결과실행 시간메모리
596023fuad27Parrots (IOI11_parrots)C++17
17 / 100
9 ms1220 KiB
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
void encode(int N, int M[]) {
	int cntone=0,cntzero=0;
	for(int i = 0;i<N;i++) {
		for(int j = 0;j<8;j++) {
			if(M[i]&(1ll<<j))cntone++;
			else cntzero++;
		}
	}
	if(cntone+3 <= cntzero) {
		for(int i = 0;i<N;i++) {
			for(int j = 0;j<8;j++) {
				if(M[i]&(1ll<<j)) {
					if(i < 32) {
						long long num = i*(1ll<<3)+j;
						send(num);
					}
					else {
						long long i_=i-32;
						long long num = i_*(1ll<<3)+j;
						send(num);
						send(num);
					}
				}
			}
		}
	}
	else {
		send(0);
		send(0);
		send(0);
		send(0);
		for(int i = 0;i<N;i++) {
			for(int j = 0;j<8;j++) {
				if(!(M[i]&(1ll<<j))) {
					if(i < 32) {
						long long num = i*(1ll<<3)+j;
						send(num);
					}
					else {
						long long i_=i-32;
						long long num = i_*(1ll<<3)+j;
						send(num);
						send(num);
					}
				}
			}
		}
	}
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
void decode(int N, int L, int X[])
{
	int ans[N];
	for(int i = 0;i<N;i++)ans[i]=0;
	map<int,int> cnt;
	bool check=(cnt[0]>3);
	for(int i = 0;i<L;i++)cnt[X[i]]++;
	if(cnt[0]>3)cnt[0]-=4;
	for(int i = 0;i<L;i++) {
		if(cnt[X[i]]==0)continue;
		if(cnt[X[i]]==1) {
			ans[X[i]/8]|=(1ll<<(X[i]%8));
		}
		else if(cnt[X[i]]==2) {
			ans[X[i]/8+32]|=(1ll<<(X[i]%8));
		}
		else if(cnt[X[i]]==3){
			ans[X[i]/8+32]|=(1ll<<(X[i]%8));
			ans[X[i]/8]|=(1ll<<(X[i]%8));
		}
	}
	for(int i = 0;i<N;i++){
		long long k = 0;
		if(check) {
			for(int j =0;j<8;j++) {
				k|=(1ll<<j);
				if(ans[i]&(1ll<<j))k-=(1ll<<j);
			}
		}
		else k = ans[i];
		output(k);
	}
}
#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...