Submission #295679

#TimeUsernameProblemLanguageResultExecution timeMemory
295679b00n0rpParrots (IOI11_parrots)C++17
88 / 100
15 ms1792 KiB
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;

#define REP(i,n) for(int i = 0; i < n; i ++)
#define FOR(i,a,b) for(int i = a; i < b; i ++)

void encode(int N, int M[]){
	int n = N;
	int a[105];
	REP(i,n) a[i] = M[i];

	REP(i,n){
		int times = 1;
		if(i >= 32) times++;

		int cur = (i%32)*8;
		REP(j,8){
			if(a[i]&(1<<j)){
				REP(k,times){
					send(cur+j);
				}
			}
		}
	}
	
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;

#define REP(i,n) for(int i = 0; i < n; i ++)
#define FOR(i,a,b) for(int i = a; i < b; i ++)
#define F first
#define S second

void decode(int N, int L, int X[]){
	int ans[105];
	REP(i,N) ans[i] = 0;

	map<int,int> m;
	REP(i,L) m[X[i]]++;

	for(auto x:m){
		int ind = x.F/8;
		if(x.S&2) ans[ind+32] += (1<<(x.F%8));
		if(x.S&1) ans[ind] += (1<<(x.F%8));
	}
	REP(i,N) output(ans[i]);
}
#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...