17 Mar 2013

Logging Game_SOLVED


/*

CODECHEF
PROBLEM CODE : LOGGERS

*/

#include<stdio.h>
 
 
int sgtable[251]={-1,0,1,2,3,1,4,3,2,1,4,2,6,4,1,2,7,1,4,3,2,1,4,6,7
,4,1,2,8,5,4,7,2,1,8,6,7,4,1,2,3,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,
4,2,7,4,1,2,8,1,4,7,2,1,8,6,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,
8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7
,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,
8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1
,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4
,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,8};
 
int main()
{
 
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int i,val,ans=0;
for(i=0;i<n;i++)
{
scanf("%d",&val);;
ans=ans^sgtable[val];
}
if(ans)printf("Alice\n");
else printf("Bob\n");
}
return 0;
}

Categories: , , ,

Tautology_SOLVED


/*

CODECHEF
PROBLEM CODE : TAUT

*/

#include <stdio.h>
#include <string.h>
#define S(a,b,c) (b=(a)?(c):(b))
 
int f[30];
char z[3][130];
 
int A(int q, int w)
{
if(q>=w)
return B()+(f[28]=0);
if(!(f[z[1][q]-'a']=0)&&!A(q+1,w))
return 0;
return !!A(q+(f[z[1][q]-'a']=1),w);
}
 
int B()
{
int t1, t2;
char *p=&z[0][f[28]];
if(*p>='a'&&*p<='z')
return f[z[0][f[28]++]-'a'];
if(*p=='N')
{
f[28]++;
t1=B();
return t1^1;
}
else if(*p=='C'||*p=='D'||*p=='I'||*p=='E')
{
f[28]++;
t1=B();
t2=B();
return (*p=='C')?(t1&t2):((*p=='D')?(t1|t2):((*p=='I')?((t1^1)|t2):((t1&t2)|((t1^1)&(t2^1)))));
}
return 0;
}
 
int main()
{
int fall, i, s;
for(scanf("%d",&fall); fall--;)
{
for(i=-!(s=!scanf("%s",z[0])),f[27]=strlen(z[0]); z[0][++i]!='\0'; S(z[0][i]>='a'&&z[0][i]<='z'&&!z[2][z[0][i]-'a'],z[2][z[0][i]-'a'],1+(z[1][s++]=z[0][i])-z[0][i]));
printf(A(0,s)?"YES\n":"NO\n");
for(i=-1; ++i<26; f[i]=z[2][i]=0);
}
return 0;
}

Categories: , , ,

The Matrix Game_SOLVED

/*

CODECHEF
PROBLEM CODE : SNCK01

*/

#include <stdio.h>
#define N 51

int M[N][N];

int main()
{
int n,m,sg,t,r,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(i=0;i<n;i++) 
for(j=0;j<m;j++)
scanf("%d",&M[i][j]);

r = 0;

for(i=0;i<n;i++)
{
sg = M[i][m-1];
for(j=m-2;j>=0;j--)
{
if(M[i][j]>sg) 
sg=M[i][j];
else 
sg = M[i][j]-1;
}
r^=sg;
}

puts(r?"FIRST":"SECOND");
}
return 0;
}

Categories: , , ,

Copyright © UPgradeCODING | Powered by Blogger