Submission #61037

# Submission time Handle Problem Language Result Execution time Memory
61037 2018-07-25T06:22:19 Z 정원준(#1763) Broken Device (JOI17_broken_device) C++11
8 / 100
90 ms 3832 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]!=1)
				{
					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<N;i++)
	{
		a[i]=0;
	}
	for(i=0;i<K;i++)
	{
		a[P[i]]=-1;
	}
	if(!tr(N,X,0))
	{
		for(i=0;i<N;i++)
		{
			if(a[i]==1) a[i]=0;
		}
		//puts("dndnpr");
		tr(N,X,1);
	}
	
	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;
      ^
# Verdict Execution time Memory Grader output
1 Partially correct 60 ms 2792 KB Output is partially correct - L* = 14
2 Partially correct 57 ms 3568 KB Output is partially correct - L* = 14
3 Partially correct 63 ms 3568 KB Output is partially correct - L* = 14
4 Partially correct 72 ms 3648 KB Output is partially correct - L* = 14
5 Partially correct 80 ms 3648 KB Output is partially correct - L* = 15
6 Partially correct 55 ms 3728 KB Output is partially correct - L* = 14
7 Partially correct 67 ms 3728 KB Output is partially correct - L* = 15
8 Partially correct 66 ms 3832 KB Output is partially correct - L* = 14
9 Partially correct 90 ms 3832 KB Output is partially correct - L* = 14
10 Partially correct 53 ms 3832 KB Output is partially correct - L* = 14
11 Partially correct 53 ms 3832 KB Output is partially correct - L* = 14
12 Partially correct 56 ms 3832 KB Output is partially correct - L* = 15
13 Partially correct 49 ms 3832 KB Output is partially correct - L* = 14
14 Partially correct 61 ms 3832 KB Output is partially correct - L* = 14
15 Partially correct 70 ms 3832 KB Output is partially correct - L* = 15
16 Partially correct 79 ms 3832 KB Output is partially correct - L* = 14
17 Partially correct 63 ms 3832 KB Output is partially correct - L* = 14
18 Partially correct 65 ms 3832 KB Output is partially correct - L* = 14
19 Partially correct 61 ms 3832 KB Output is partially correct - L* = 14
20 Partially correct 59 ms 3832 KB Output is partially correct - L* = 14
21 Partially correct 57 ms 3832 KB Output is partially correct - L* = 15
22 Partially correct 61 ms 3832 KB Output is partially correct - L* = 14
23 Partially correct 75 ms 3832 KB Output is partially correct - L* = 15
24 Partially correct 62 ms 3832 KB Output is partially correct - L* = 14
25 Partially correct 73 ms 3832 KB Output is partially correct - L* = 14
26 Partially correct 67 ms 3832 KB Output is partially correct - L* = 16
27 Partially correct 54 ms 3832 KB Output is partially correct - L* = 14
28 Partially correct 59 ms 3832 KB Output is partially correct - L* = 14
29 Partially correct 53 ms 3832 KB Output is partially correct - L* = 14
30 Partially correct 49 ms 3832 KB Output is partially correct - L* = 14
31 Partially correct 53 ms 3832 KB Output is partially correct - L* = 14
32 Partially correct 64 ms 3832 KB Output is partially correct - L* = 14
33 Partially correct 48 ms 3832 KB Output is partially correct - L* = 14
34 Partially correct 71 ms 3832 KB Output is partially correct - L* = 14
35 Partially correct 61 ms 3832 KB Output is partially correct - L* = 14
36 Partially correct 49 ms 3832 KB Output is partially correct - L* = 14
37 Partially correct 52 ms 3832 KB Output is partially correct - L* = 14
38 Partially correct 53 ms 3832 KB Output is partially correct - L* = 15
39 Partially correct 54 ms 3832 KB Output is partially correct - L* = 14
40 Partially correct 56 ms 3832 KB Output is partially correct - L* = 14