제출 #1353087

#제출 시각아이디문제언어결과실행 시간메모리
1353087WH8Broken Device (JOI17_broken_device)C++17
0 / 100
0 ms344 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ){
	vector<bool> broken(N, 0);
	for(int i=0;i<K;i++){
		broken[P[i]]=1;
	}
	int v[60];
	for(int i=0;i<60;i++){
		if((1ll<<i) & X)v[i]=1;
		else v[i]=0;
	}
	int ptr=0;
	for(int i=0;i<60;i++){
		if(v[i]){
			if(!broken[ptr]){
				Set(ptr, 1);
				ptr++;
			}
			else {
				int par=0;
				while(broken[ptr] or par%2==1){
					par++;
					Set(ptr, 0);
					ptr++;
				}
				Set(ptr, 1);
				ptr++;
			}
		}
		else {
			int par=0;
			while(broken[ptr] or par%2==0){
				par++;
				Set(ptr, 0);
				ptr++;
			}
			Set(ptr, 1);
			ptr++;
		}
	}
	for(;ptr<N;ptr++){
		Set(ptr, 0);
	}
}
#include "Brunolib.h"

long long Bruno( int N, int A[] ){
	
	long long X=0;
	int got=0, par=0;
	for(int i=0;i<N and got < 60;i++){
		if(A[i]){
			if(par%2==1){
				got++; // zero
			}
			else {
				X += (1ll<<got);
				got++;
			}
			par=0;
		}
		else{
			par++;
		}
	}
	return X;
}
#Verdict Execution timeMemoryGrader output
Fetching results...