#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;
^
# |
결과 |
실행 시간 |
메모리 |
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 |