답안 #61022

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
61022 2018-07-25T06:06:05 Z 정원준(#1763) Broken Device (JOI17_broken_device) C++11
0 / 100
86 ms 3848 KB
#include "Annalib.h"
#include <bits/stdc++.h>
#define L long long

using namespace std;

void Set(int,int);

int a[150];

int tr(int n,L x,L xr){
	int i;
	L bit=1;
	while(bit<=x) bit*=2;
	bit/=2;
	
	int st=0;
	while(bit)
	{
		L now=x&bit?1:0;

		now^=xr;
		//printf("%lld %lld %lld\n",bit,now,st);
		if(now==1)
		{
			while(1)
			{
				if(st>=n) return 0;
				if(a[st]==-1)
				{
					st++;
					continue;
				}
				
				if(st>0&&a[st-1]==1)
				{
					a[st]=1;
					st++;
					break;
				}
				if(st<n-1&&a[st+1]!=-1)
				{
					a[st]=a[st+1]=1;
					st+=2;
					break;
				}
				
				st++;
				if(st>=n) return 0;
			}
		}
		else
		{
			while(1)
			{
				if(st>=n) return 0;
				if(a[st]==-1)
				{
					st++;
					continue;
				}
				
				if(st==0)
				{
					a[st]=1;
					st+=2;
					break;
				}
				if(st>0&&a[st-1]==0)
				{
					a[st]=1;
					st+=2;
					break;
				}
				
				st++;
				if(st>=n) return 0;
			}
		}
		bit>>=1;
	}
	return 1;
}

void Anna(int N,L X,int K,int P[]){
	int i;
	for(i=0;i<K;i++)
	{
		a[P[i]]=-1;
	}
	if(!tr(N,X,1))
	{
		for(i=0;i<N;i++)
		{
			if(a[i]==1) a[i]=0;
		}
		//puts("dndnpr");
		tr(N,X,0);
	}
	
	for(i=0;i<N;i++)
	{
		if(a[i]==-1) a[i]=0;
		Set(i,a[i]);
	}
}
/*
int p[100010];
int aa[100010];

void Set(int loc,int val){
	aa[loc]=val;
}

L Bruno(int N,int A[]){
	L ret=0,xr=0,i;
	for(i=0;i<N;i++)
	{
		if(A[i])
		{
			if(i<N-1&&A[i+1]) xr=0;
			else xr=1;
			break;
		}
	}
	if(i==N) return 0;
	for(i=0;i<N;i++)
	{
		if(A[i])
		{
			if(i>0&&A[i-1])
			{
				ret=ret*2+(1^xr);
				continue;
			}
			
			if(i<N-1&&A[i+1])
			{
				continue;
			}
			else
			{
				ret=ret*2+(0^xr);
				i++;
			}
		}
	}
	return ret;
}

int main()
{
	L n,k,x;
	
	scanf("%lld %lld %lld",&n,&k,&x);
	for(int i=0;i<k;i++)
	{
		scanf("%lld",&p[i]);
	}
	Anna(n,x,k,p);
	for(int i=0;i<n;i++)
	{
		printf("%d ",aa[i]);
	}
	puts("");
	printf("%lld ",Bruno(n,aa));
}
//*/
#include "Brunolib.h"
#include <bits/stdc++.h>
#define L long long

using namespace std;

L Bruno(int N,int A[]){
	L ret=0,xr=0,i;
	for(i=0;i<N;i++)
	{
		if(A[i])
		{
			if(i<N-1&&A[i+1]) xr=0;
			else xr=1;
			break;
		}
	}
	if(i==N) return 0;
	for(i=0;i<N;i++)
	{
		if(A[i])
		{
			if(i>0&&A[i-1])
			{
				ret=ret*2+(1^xr);
				continue;
			}
			
			if(i<N-1&&A[i+1])
			{
				continue;
			}
			else
			{
				ret=ret*2+(0^xr);
				i++;
			}
		}
	}
	return ret;
}

Compilation message

Anna.cpp: In function 'int tr(int, long long int, long long int)':
Anna.cpp:12:6: warning: unused variable 'i' [-Wunused-variable]
  int i;
      ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 56 ms 3056 KB Output isn't correct - L* = 0
2 Incorrect 65 ms 3392 KB Output isn't correct - L* = 0
3 Incorrect 63 ms 3392 KB Output isn't correct - L* = 0
4 Incorrect 52 ms 3392 KB Output isn't correct - L* = 0
5 Incorrect 55 ms 3688 KB Output isn't correct - L* = 0
6 Incorrect 59 ms 3688 KB Output isn't correct - L* = 0
7 Incorrect 73 ms 3688 KB Output isn't correct - L* = 0
8 Incorrect 53 ms 3688 KB Output isn't correct - L* = 0
9 Incorrect 78 ms 3720 KB Output isn't correct - L* = 0
10 Incorrect 73 ms 3720 KB Output isn't correct - L* = 0
11 Incorrect 68 ms 3720 KB Output isn't correct - L* = 0
12 Incorrect 65 ms 3720 KB Output isn't correct - L* = 0
13 Incorrect 57 ms 3720 KB Output isn't correct - L* = 0
14 Incorrect 58 ms 3840 KB Output isn't correct - L* = 0
15 Incorrect 79 ms 3840 KB Output isn't correct - L* = 0
16 Incorrect 61 ms 3840 KB Output isn't correct - L* = 0
17 Incorrect 56 ms 3840 KB Output isn't correct - L* = 0
18 Incorrect 65 ms 3840 KB Output isn't correct - L* = 0
19 Incorrect 57 ms 3840 KB Output isn't correct - L* = 0
20 Incorrect 73 ms 3840 KB Output isn't correct - L* = 0
21 Incorrect 76 ms 3840 KB Output isn't correct - L* = 0
22 Incorrect 86 ms 3840 KB Output isn't correct - L* = 0
23 Incorrect 75 ms 3840 KB Output isn't correct - L* = 0
24 Incorrect 57 ms 3840 KB Output isn't correct - L* = 0
25 Incorrect 69 ms 3840 KB Output isn't correct - L* = 0
26 Incorrect 56 ms 3840 KB Output isn't correct - L* = 0
27 Incorrect 72 ms 3840 KB Output isn't correct - L* = 0
28 Incorrect 60 ms 3840 KB Output isn't correct - L* = 0
29 Incorrect 69 ms 3840 KB Output isn't correct - L* = 0
30 Incorrect 47 ms 3840 KB Output isn't correct - L* = 0
31 Incorrect 68 ms 3848 KB Output isn't correct - L* = 0
32 Incorrect 47 ms 3848 KB Output isn't correct - L* = 0
33 Incorrect 67 ms 3848 KB Output isn't correct - L* = 0
34 Incorrect 65 ms 3848 KB Output isn't correct - L* = 0
35 Incorrect 54 ms 3848 KB Output isn't correct - L* = 0
36 Incorrect 54 ms 3848 KB Output isn't correct - L* = 0
37 Incorrect 60 ms 3848 KB Output isn't correct - L* = 0
38 Incorrect 72 ms 3848 KB Output isn't correct - L* = 0
39 Incorrect 53 ms 3848 KB Output isn't correct - L* = 0
40 Incorrect 48 ms 3848 KB Output isn't correct - L* = 0