Submission #65825

#TimeUsernameProblemLanguageResultExecution timeMemory
65825vsv21gmlParrots (IOI11_parrots)C++14
17 / 100
10 ms2376 KiB
#include "encoder.h"
#include "encoderlib.h"

int encode4(int i) {
	if (i < 8)	return i;
	return (i >> 3) + 8;
}
/*
void sendDebug(int i, int j) {
	printf("send (%d,%d) ", i, j);
	while(j > 1){
		if (j % 2 == 0) {
			printf("0");
		}
		else {
			printf("1");
			j--;
		}
		j /= 2;
	}
	printf("1\n");
}
*/
void encode(int N, int M[]){
	int i, position, value;
	
	for (i = 0; i < N; i++) {
		position = encode4(i) << 4;

		while(M[i] > 0) {
			if (M[i] >= 56) {
				//sendDebug(i, position + encode4(56));
				send(position + encode4(56));
				M[i] -= 56;
			}
			else {
				value = 0;
				if (M[i] >= 32) {
					value += 32;
					M[i] -= 32;
				}
				if (M[i] >= 16) {
					value += 16;
					M[i] -= 16;
				}
				if (M[i] >= 8) {
					value += 8;
					M[i] -= 8;
				}

				if (value > 0) {
					//sendDebug(i, position + encode4(value));
					send(position + encode4(value));
				}

				value = M[i];
				M[i] -= M[i];

				//sendDebug(i, position + encode4(value));
				send(position + encode4(value));
				break;
			}
		}
	}
}
#include "decoder.h"
#include "decoderlib.h"

int decode4(int i) {
	if (i < 8)	return i;
	else return (i - 8) << 3;
}

int result[64];
void decode(int N, int L, int X[]){
	int i, position, value;
	for (i = 0; i < N; i++)	result[i] = 0;
	for (i = 0; i < L; i++) {
		//printf("Get %d   /  ", X[i]);
		position = decode4(X[i] >> 4);
		if(position > 0)	X[i] -= position << 4;
		result[position] += decode4(X[i]);
		//printf("decode [%d] = %d\n", position, result[position]);
	}

	//for (i = 0; i < N; i++)	printf("[%d]=%d\n", i, result[i]);
	for (i = 0; i < N; i++)	output(result[i]);
}

Compilation message (stderr)

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:11:19: warning: unused variable 'value' [-Wunused-variable]
  int i, position, value;
                   ^~~~~
#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...