제출 #69067

#제출 시각아이디문제언어결과실행 시간메모리
69067IvanCBroken Device (JOI17_broken_device)C++17
0 / 100
2097 ms1536 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 210;
const int MAXL = 60;

static int possivel[MAXN][2],resposta[MAXN];

void Anna( int N, long long X, int K, int P[] ){

	memset(possivel,1,sizeof(possivel));

	for(int i = 0;i<K;i++){
		possivel[P[i]][1] = 0;
	}

	int last = 0,ptr = 0;
	while(last < MAXL && ptr < N){
		if(!possivel[ptr][1]){
			ptr++;
		}
		else{
			long long digito = (X & (1LL << last));
			if(digito){
				if(possivel[ptr+1][1]){
					resposta[ptr] = 1;
					resposta[ptr+1] = 1;
					last++;
					ptr += 2;
				}
			}
			else{
				resposta[ptr] = 1;
				resposta[ptr+1] = 0;
				last++;
				ptr += 2;
			}
		}
	}

	for(int i =0;i<N;i++){
		Set( i, resposta[i] );
	}

}
#include "Brunolib.h"

long long Bruno( int N, int A[] ){

	long long ans = 0;
	int last = 0;
	int i = 0;

	while(i < N){
		if(A[i] == 1){
			ans += (A[i+1])*(1LL << last);
			last++;
			i += 2;
		}
		else{
			i++;
		}
	}

	return ans;

}
#Verdict Execution timeMemoryGrader output
Fetching results...