Nim-tricks
From Algopedia
Jump to navigationJump to search
/*
Nume program : nim_tricks.c
Nume concurent : Coman Andrei
*/
#include <stdio.h>
#include <stdlib.h>
int v[30];
int citire(){
char c;
int i=0;
c=fgetc(stdin);
do{
if(c==' ')
i++;
else
v[i]=v[i]*10+c-'0';
c=fgetc(stdin);
}while(c!='\n');
i++;
return i;
}
void scriere(int n){
int i;
printf("%d", v[0]);
for(i=1;i<n;i++)
printf(" %d", v[i]);
printf("\n");
return 0;
}
int main()
{
int n, sn=0, i, st, p, sm=100000000;
n=citire();
for(i=0;i<n;i++)
sn=sn^v[i];
if(sn==0){
i=0;
while(v[i]==0)
i++;
v[i]--;
}
else{
for(i=0;i<n;i++){
st=sn^v[i];
if(st<sm && st<=v[i]){
sm=st;
p=i;
}
}
v[p]=sm;
}
scriere(n);
return 0;
}