Submission #920406

# Submission time Handle Problem Language Result Execution time Memory
920406 2024-02-02T14:15:53 Z Lalic Parrots (IOI11_parrots) C++17
98 / 100
8 ms 1824 KB
#include <bits/stdc++.h>
#include "encoder.h"
#include "encoderlib.h"

#define pb push_back

using namespace std;

void encode(int N, int M[])
{
	vector<int> mesAct, mesInact={0, 0, 0, 0};
	for(int i=0;i<N;i++){
		for(int j=0;j<8;j++){
			int pos=i, id=j>>1;
			
			//cout << pos << " " << id << "\n";
			
			if(!(M[i]&(1<<j))){
				if(j&1) mesInact.pb(pos+(id<<6));
				mesInact.pb(pos+(id<<6));
			}
			else{
				if(j&1) mesAct.pb(pos+(id<<6));
				mesAct.pb(pos+(id<<6));
			}
		}
	}
	
	//cout << (int)mesAct.size() << " X " << (int)mesInact.size() << "\n";
	
	if((int)mesAct.size()<(int)mesInact.size()){
		for(auto u : mesAct) send(u);
	}
	else{
		for(auto u : mesInact) send(u);
	}
		
}
#include <bits/stdc++.h>
#include "decoder.h"
#include "decoderlib.h"

#define all(x) x.begin(), x.end()

using namespace std;

void decode(int N, int L, int X[])
{
	vector<int> arr;
	
	vector<int> ent(L);
	for(int i=0;i<L;i++) ent[i]=X[i];
	sort(all(ent));
	
	bool flag=0;
	
	int id=0;
	if(L>=4 && ent[3]==0) arr.assign(N, 255), id=4, flag=1;
	else arr.assign(N, 0);
	
	//for(int i=0;i<N;i++) cout << arr[i] << " \n"[i==N-1];
	
	for(;id<L;id++){
		int u=ent[id];
		
		int p=u%(1<<6), val=(u/(1<<6))<<1;
		//cout << u << "\t" << p << "\t" << val << "\n";
		if(flag) arr[p]-=(1<<val);
		else arr[p]+=(1<<val);
	}
	
	//for(int i=0;i<N;i++) cout << arr[i] << " \n"[i==N-1];
	
	for(int i=0;i<N;i++) output(arr[i]);
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1312 KB Output is correct
2 Correct 1 ms 1316 KB Output is correct
3 Correct 2 ms 1312 KB Output is correct
4 Correct 3 ms 1324 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1312 KB Output is correct
2 Correct 2 ms 1824 KB Output is correct
3 Correct 1 ms 1312 KB Output is correct
4 Correct 2 ms 1320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1308 KB Output is correct
2 Correct 3 ms 1320 KB Output is correct
3 Correct 2 ms 1332 KB Output is correct
4 Correct 4 ms 1332 KB Output is correct
5 Correct 3 ms 1340 KB Output is correct
6 Correct 4 ms 1344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 1320 KB Output is partially correct - P = 6.125000
2 Partially correct 4 ms 1336 KB Output is partially correct - P = 6.062500
3 Partially correct 4 ms 1328 KB Output is partially correct - P = 6.060606
4 Partially correct 6 ms 1348 KB Output is partially correct - P = 6.020000
5 Partially correct 8 ms 1364 KB Output is partially correct - P = 6.033333
6 Partially correct 7 ms 1368 KB Output is partially correct - P = 6.031746
7 Partially correct 7 ms 1372 KB Output is partially correct - P = 6.031250