Submission #25544

# Submission time Handle Problem Language Result Execution time Memory
25544 2017-06-23T02:49:09 Z admin Parrots (IOI11_parrots) C++14
98 / 100
9 ms 1604 KB
#include "encoder.h"
#include "encoderlib.h"
 
int count[1000];
 
void encode (int N, int M[]) { // 6N approach
	int c1 = 0, c0 = 0;
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < 4; j++) {
			count[i*4+j] = !!(M[i] & 1<<(j*2+1))*2 + !!(M[i] & 1<<(j*2));
			c1 += count[i*4+j];
		}
	}
	c0 = N * 4 * 3 - c1;
	
	if(c1 < c0) {
		for(int i = 0; i < N * 4; i++)
			while(count[i]--) send(i);
	}else {
		send(0); send(0); send(0); send(0);
		for(int i = 0; i < N * 4; i++) {
			count[i] = 3 - count[i];
			while(count[i]--) send(i);
		}
	}
}
#include "decoder.h"
#include "decoderlib.h"
 
int count[1000];
 
void decode (int N, int L, int X[]) {
	int i, j;
 
	bool isc0 = false; 
	for(i = 0; i < N * 4; i++) count[i] = 0;
	for(i = 0; i < L; i++) {
		++count[X[i]];
		if(count[0] == 4) isc0 = true;
	}
 
	if(isc0) {
		count[0] -= 4;
		for(i = 0; i < N * 4; i++) count[i] = 3 - count[i];
	}
 
	for(i = 0; i < N; i++) {
		int ret = 0;
		for(j = 0; j < 4; j++) {
			ret |= count[i * 4 + j] << (2 * j);
		}
 
		output(ret);
	}
 
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 868 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1260 KB Output is correct
2 Correct 2 ms 1340 KB Output is correct
3 Correct 3 ms 1332 KB Output is correct
4 Correct 3 ms 1140 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1260 KB Output is correct
2 Correct 2 ms 1264 KB Output is correct
3 Correct 3 ms 1224 KB Output is correct
4 Correct 3 ms 1336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1132 KB Output is correct
2 Correct 3 ms 1140 KB Output is correct
3 Correct 3 ms 1144 KB Output is correct
4 Correct 4 ms 1324 KB Output is correct
5 Correct 4 ms 1284 KB Output is correct
6 Correct 4 ms 1276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 1144 KB Output is partially correct - P = 6.250000
2 Partially correct 4 ms 1320 KB Output is partially correct - P = 6.093750
3 Partially correct 4 ms 1316 KB Output is partially correct - P = 6.121212
4 Partially correct 7 ms 1604 KB Output is partially correct - P = 6.080000
5 Partially correct 9 ms 1524 KB Output is partially correct - P = 6.066667
6 Partially correct 8 ms 1448 KB Output is partially correct - P = 6.047619
7 Partially correct 9 ms 1540 KB Output is partially correct - P = 6.062500