Submission #18407

# Submission time Handle Problem Language Result Execution time Memory
18407 2016-01-31T08:31:10 Z suhgyuho_william Parrots (IOI11_parrots) C++
98 / 100
11 ms 2280 KB
#include "encoder.h"
#include "encoderlib.h"
#include <stdio.h>

void encode(int N, int M[]){
	int i,j,tt;
	int tmp[100];
	int bit[100];

	for(i=0; i<N; i++) tmp[i] = M[i];
	int dp[10][10][10][10];
	int a,b,c,d;
	int cnt = -1;
	struct data{
		int a,b,c,d;
	}memo[500];

	for(tt=0; tt<=7; tt++) for(a=0; a<=tt; a++) for(b=0; b<=tt-a; b++) for(c=0; c<=tt-a-b; c++){cnt++;	d = tt-a-b-c;dp[a][b][c][d] = cnt;	memo[cnt].a = a;memo[cnt].b = b;memo[cnt].c = c;memo[cnt].d = d;	}
	for(i=0; i<=cnt; i++) if(memo[i].a+memo[i].b+memo[i].c+memo[i].d > 7) printf("!");
	for(i=0; i<N; i++){
		cnt = M[i];
		for(j=1; j<=memo[cnt].a; j++) send(i*4+0);
		for(j=1; j<=memo[cnt].b; j++) send(i*4+1);
		for(j=1; j<=memo[cnt].c; j++) send(i*4+2);
		for(j=1; j<=memo[cnt].d; j++) send(i*4+3);
	}
	for(i=0; i<N; i++) M[i] = tmp[i];
}
#include "decoder.h"
#include "decoderlib.h"
#include <algorithm>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

void decode(int N, int L, int X[]){
	int i,j;
	int t1,t2;
	int ans[100];
	int tmp[100][4];
	int dp[10][10][10][10];
	int a,b,c,d,tt;
	int cnt = -1;

	for(tt=0; tt<=7; tt++){
		for(a=0; a<=tt; a++) for(b=0; b<=tt-a; b++) for(c=0; c<=tt-a-b; c++){ cnt++; d = tt-a-b-c; dp[a][b][c][d] = cnt; }
	}
	for(i=0; i<N; i++) for(j=0; j<4; j++) tmp[i][j] = 0;
	for(i=0; i<L; i++){	t1 = X[i] / 4; t2 = X[i] % 4; tmp[t1][t2]++; }
	for(i=0; i<N; i++) ans[i] = 0;
	for(i=0; i<N; i++){
		ans[i] = dp[tmp[i][0]][tmp[i][1]][tmp[i][2]][tmp[i][3]];
	}
	for(i=0; i<N; i++) output(ans[i]);
}

Compilation message

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:8:6: warning: unused variable 'bit' [-Wunused-variable]
  int bit[100];
      ^~~
encoder.cpp:11:6: warning: variable 'dp' set but not used [-Wunused-but-set-variable]
  int dp[10][10][10][10];
      ^~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 1736 KB Output is correct
2 Correct 6 ms 2040 KB Output is correct
3 Correct 5 ms 2104 KB Output is correct
4 Correct 6 ms 2200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 2200 KB Output is correct
2 Correct 5 ms 2232 KB Output is correct
3 Correct 6 ms 2264 KB Output is correct
4 Correct 5 ms 2264 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2264 KB Output is correct
2 Correct 5 ms 2264 KB Output is correct
3 Correct 5 ms 2264 KB Output is correct
4 Correct 7 ms 2264 KB Output is correct
5 Correct 8 ms 2264 KB Output is correct
6 Correct 8 ms 2272 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 6 ms 2280 KB Output is partially correct - P = 7.000000
2 Partially correct 7 ms 2280 KB Output is partially correct - P = 7.000000
3 Partially correct 7 ms 2280 KB Output is partially correct - P = 7.000000
4 Partially correct 9 ms 2280 KB Output is partially correct - P = 7.000000
5 Partially correct 11 ms 2280 KB Output is partially correct - P = 7.000000
6 Partially correct 11 ms 2280 KB Output is partially correct - P = 7.000000
7 Partially correct 11 ms 2280 KB Output is partially correct - P = 7.000000