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; }