Nim
From Algopedia
/*
NUME PROGRAM : nim.c
NUME CONCURENT : POPOVICI ROBERT
*/
#include <stdio.h>
#include <stdlib.h>
int v[30];
int main()
{ int s,i,con,c,max,flag;
char a;
scanf("%d" ,&v[0]);
i=1;
s=v[0];
con=1;
a=fgetc(stdin);
while(a!='\n')
{
scanf("%d" ,&v[i]);
s=s^v[i];
i++;
a=fgetc(stdin);
con++;
}
i=0;
while(i<con&&((v[i]^s)>=v[i]))
i++;
if(i<con)
v[i]=v[i]^s;
else
{
flag=0;
i=0;
while(flag==0&&i<con)
{
if(v[i]>0)
{
v[i]--;
flag=1;
}
}
}
printf("%d" ,v[0]);
for(i=1;i<con;i++)
printf(" %d" ,v[i]);
printf("\n");
return 0;
}