Submission #1000068

# Submission time Handle Problem Language Result Execution time Memory
1000068 2024-06-16T14:51:26 Z NintsiChkhaidze Parrots (IOI11_parrots) C++17
88 / 100
7 ms 3044 KB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#include "encoder.h"
#include "encoderlib.h"
//#include "parrotslib.h"
 
using namespace std;
const int MN = 3e5 + 5;
int xx[300005];
int vl[45][15];

void fill(){
	int p = 0;
	for (int i=0;i<32;i++){
		for (int j=0;j<8;j++){
			vl[i][j] = p++;
		}
	}
}
void encode(int N, int M[]){
	fill();
	int id = -1;
	for (int i = 0; i < N; i++){
		int x = M[i];
		for (int j = 7; j >= 0; j--){
			if (((x >> j) & 1)){
				if (i < 32) xx[++id] = vl[i][j];
				else {
					xx[++id] = vl[i - 32][j];
					xx[++id] = vl[i - 32][j];
				}
			}
		}
	}
	
	for (int i=0;i<=id;i++)
		send(xx[i]);
}
#include <bits/stdc++.h>
#include "decoder.h"
#include "decoderlib.h"
#define ll long long
#define pb push_back
//#include "parrotslib.h"
 
using namespace std;
//const int MN = 3e5 + 5;
int yy[300005],vl2[45][15],c[45][15];
pair <int,int> rev[315];

void fill2(){
	int p = 0;
	for (int i=0;i<32;i++){
		for (int j=0;j<8;j++){
			vl2[i][j] = p;
			rev[p] = {i,j};
			p++;
		}
	}
}

void decode(int N, int L, int X[]){
	fill2();
	
	for (int i=0;i<N;i++)
		yy[i] = 0;
		
	for (int i = 0; i < L; i++){
		int x = X[i];
		int A = rev[x].second,B = rev[x].first;
		c[B][A]++;
	}
	
	for (int i = 0; i < 32; i++){
		for (int j = 0; j < 8; j++){
			if (c[i][j] >= 2) yy[i + 32] |= (1<<j);
			if ((c[i][j] & 1)) yy[i] |= (1<<j);
		}
	}
	
	for (int i = 0; i < 32; i++)
		for (int j = 0; j < 8; j++)
			c[i][j] = 0;
			
	for (int i=0;i<N;i++)
		output(yy[i]);
}
 
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2836 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2852 KB Output is correct
2 Correct 2 ms 2848 KB Output is correct
3 Correct 1 ms 2848 KB Output is correct
4 Correct 1 ms 2860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2836 KB Output is correct
2 Correct 1 ms 2852 KB Output is correct
3 Correct 3 ms 2856 KB Output is correct
4 Correct 1 ms 2856 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2940 KB Output is correct
2 Correct 1 ms 2848 KB Output is correct
3 Correct 2 ms 2848 KB Output is correct
4 Correct 2 ms 2944 KB Output is correct
5 Correct 2 ms 3044 KB Output is correct
6 Correct 3 ms 2880 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 2860 KB partially correct P=8.000000
2 Partially correct 3 ms 2864 KB partially correct P=8.000000
3 Partially correct 3 ms 2872 KB partially correct P=8.242424
4 Partially correct 6 ms 2900 KB partially correct P=10.880000
5 Partially correct 6 ms 2920 KB partially correct P=11.733333
6 Partially correct 7 ms 2932 KB partially correct P=11.936508
7 Partially correct 6 ms 2924 KB partially correct P=12.000000