Submission #1233172

#TimeUsernameProblemLanguageResultExecution timeMemory
1233172PenguinsAreCuteBroken Device (JOI17_broken_device)C++17
0 / 100
19 ms1344 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ) {
	int cnt = 0;
	bool val[N];
	memset(val,1,sizeof(val));
	for(int i=0;i<K;i++)
		val[P[i]] = 0;
	bool bn[150];
	memset(bn,0,sizeof(bn));
	for(int i=0;i<60;i++)
		bn[i] = X & (1LL << i);
	for(int i=0;i<N;i+=3) {
		int badbt = 7 ^ ((val[i]) | (val[i+1]<<1) | (val[i+2]<<2));
		if(!(badbt & 6) && bn[cnt] && !bn[cnt+1]) {
			Set(i,0);
			Set(i+1,1);
			Set(i+2,1);
			cnt += 2;
			continue;
		}
		if(!(badbt & 1) && !bn[cnt] && !bn[cnt+1]) {
			Set(i,1);
			Set(i+1,0);
			Set(i+2,0);
			cnt += 2;
			continue;
		}
		if(!(badbt & 5) && !bn[cnt] && bn[cnt+1]) {
			Set(i,1);
			Set(i+1,0);
			Set(i+2,1);
			cnt += 2;
			continue;
		}
		if(!(badbt & 7) && bn[cnt] && bn[cnt+1]) {
			Set(i,1);
			Set(i+1,1);
			Set(i+2,1);
			cnt += 2;
			continue;
		}
		if(!(badbt & 4) && bn[cnt]) {
			Set(i,0);
			Set(i+1,0);
			Set(i+2,1);
			cnt += 1;
			continue;
		}
		if(!(badbt & 3) && bn[cnt]) {
			Set(i,1);
			Set(i+1,1);
			Set(i+2,0);
			cnt += 1;
			continue;
		}
		if(!(badbt & 2) && !bn[cnt]) {
			Set(i,0);
			Set(i+1,1);
			Set(i+2,0);
			cnt += 1;
			continue;
		}
		Set(i,0);
		Set(i+1,0);
		Set(i+2,0);
	}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long Bruno( int N, int A[] ){
	long long X = 0;
	int cnt = 0;
	int st[8] = {0,0,0,1,1,2,1,3}, sh[8] = {0,2,1,1,1,2,2,2};
	for(int i=0;i<N;i+=3) {
		int bt = (A[i]) | (A[i+1] << 1) | (A[i+2] << 2);
		X |= (st[bt] << exchange(cnt,cnt+sh[bt]));
	}
	return X;
}
#Verdict Execution timeMemoryGrader output
Fetching results...