Submission #13496

# Submission time Handle Problem Language Result Execution time Memory
13496 2015-02-22T02:32:28 Z ainta Parrots (IOI11_parrots) C++
0 / 100
2000 ms 40464 KB
#include "encoder.h"
#include "encoderlib.h"
static int P[271][257][72], T[300];
void encode(int N, int M[])
{
	int i, j, L, ck, k;
	for (k = 1; k <= 256; k++){
		P[0][k][0] = 1;
		for (i = 1; i < 270; i++){
			for (j = 0; j < 70; j++){
				T[j] += P[i - 1][k][j] * (k + i - 1);
				T[j + 1] += T[j] >> 8;
				T[j] &= 255;
			}
			for (j = 70; j >= 0; j--){
				if (T[j] % i){
					T[j - 1] += ((T[j] % i) << 8);
				}
				T[j] /= i;
			}
			for (j = 0; j <= 70; j++){
				if (T[j])L = j;
				P[i][k][j] = T[j];
				T[j] = 0;
			}
			if (k == 256 && L >= N)break;
		}
		if (i != 270)break;
	}
	L = i;
	int pv = 0;
	for (j = 0; j < N; j++)T[j] = M[j];
	for (i = L - 1; i >= 0; i--){
		while (1){
			ck = 0;
			for (j = 70; j >= 0; j--){
				if (!ck && T[j] - P[i][256-pv][j] != 0){
					if (T[j] < P[i][256-pv][j])break;
					ck = 1;
				}
				T[j] -= P[i][256-pv][j];
			}
			if (j != -1){
				for (j = j + 1; j <= 70; j++)T[j] += P[i][256 - pv][j];
				break;
			}
			for (j = 0; j < 70; j++){
				if (T[j] < 0)T[j + 1]--, T[j] += 256;
			}
			pv++;
		}
		send(pv);
	}
}
#include "decoder.h"
#include "decoderlib.h"
#include<stdio.h>
#include<algorithm>
using namespace std;
static int P[271][257][72], T[300], Res[300];
void decode(int N, int L, int X[])
{
	int i;
	for (i = 0; i < N; i++)output(0);
	/*
	sort(X, X + L);
	int i, j, k, pv = 0;
	for (k = 1; k <= 256; k++){
		P[0][k][0] = 1;
		for (i = 1; i < 270; i++){
			for (j = 0; j < 70; j++){
				T[j] += P[i - 1][k][j] * (k + i - 1);
				T[j + 1] += T[j] >> 8;
				T[j] &= 255;
			}
			for (j = 70; j >= 0; j--){
				if (T[j] % i){
					T[j - 1] += ((T[j] % i) << 8);
				}
				T[j] /= i;
			}
			for (j = 0; j <= 70; j++){
				P[i][k][j] = T[j];
				T[j] = 0;
			}
		}
	}
	for (i = 0; i < L; i++){
		while (pv < X[i]){
			for (j = 0; j <= 70; j++){
				Res[j] += P[L - i - 1][256 - pv][j];
			}
			pv++;
		}
	}
	for (i = 0; i <= 70; i++){
		Res[i + 1] += (Res[i] >> 8);
		Res[i] &= 255;
	}
	for (i = 0; i < N; i++){
		output(Res[i]);
		Res[i] = 0;
	}*/
}

Compilation message

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:26:22: warning: 'L' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (k == 256 && L >= N)break;
                    ~~^~~~

decoder.cpp:6:37: warning: 'Res' defined but not used [-Wunused-variable]
 static int P[271][257][72], T[300], Res[300];
                                     ^~~
decoder.cpp:6:29: warning: 'T' defined but not used [-Wunused-variable]
 static int P[271][257][72], T[300], Res[300];
                             ^
decoder.cpp:6:12: warning: 'P' defined but not used [-Wunused-variable]
 static int P[271][257][72], T[300], Res[300];
            ^
# Verdict Execution time Memory Grader output
1 Incorrect 853 ms 40464 KB Error : Output is wrong
# Verdict Execution time Memory Grader output
1 Execution timed out 2065 ms 20280 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2086 ms 20280 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2071 ms 20324 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2081 ms 20336 KB Time limit exceeded
2 Execution timed out 2069 ms 20336 KB Time limit exceeded
3 Execution timed out 2076 ms 20548 KB Time limit exceeded
4 Execution timed out 2087 ms 20548 KB Time limit exceeded
5 Execution timed out 2087 ms 20636 KB Time limit exceeded
6 Execution timed out 2086 ms 20636 KB Time limit exceeded
7 Execution timed out 2078 ms 20636 KB Time limit exceeded