Primul-joc
From Algopedia
/* Nume program : primul-joc.c Nume concurent : Priboi Radu si Alex Mitrofan */ #include <stdio.h> #include <stdlib.h> int v[30],v1[30],m16[30],m8[30],m4[30],m2[30],m1[30]; int main() {int i,n,c1,j,n1,n2,cv,sm16,sm8,sm4,sm2,sm1,nrm; char c; i=0; do { scanf("%d",&v[i]); c=fgetc(stdin); i++; } while (c!='\n'); n=i; j=0; c1=0; for (i=0;i<n;i++) if (v[i]!=0) { c1++; v1[j]=i; j++; } n1=j; if (c1==1) { i=0; while (v[i]==0) i++; v[i]=0; } if (c1==2) { if (v[v1[0]]==v[v1[1]]) v[v1[0]]--; else if (v[v1[0]]>v[v1[1]]) v[v1[0]]=v[v1[1]]; else if (v[v1[0]]<v[v1[1]]) v[v1[1]]=v[v1[0]]; } else { for (i=0;i<n;i++) { cv=v[i]; while (cv>=16) { m16[i]++; cv=cv-16; } while (cv>=8) { m8[i]++; cv=cv-8; } while (cv>=4) { m4[i]++; cv=cv-4; } while (cv>=2) { m2[i]++; cv=cv-2; } while (cv>=1) { m1[i]++; cv--; } } sm16=0; for (i=0;i<n;i++) sm16=sm16+m16[i]; sm8=0; for (i=0;i<n;i++) sm8=sm8+m8[i]; sm4=0; for (i=0;i<n;i++) sm4=sm4+m4[i]; sm2=0; for (i=0;i<n;i++) sm2=sm2+m2[i]; sm1=0; for (i=0;i<n;i++) sm1=sm1+m1[i]; if (sm16%2==1) sm16=1; else sm16=0; if (sm8%2==1) sm8=1; else sm8=0; if (sm4%2==1) sm4=1; else sm4=0; if (sm2%2==1) sm2=1; else sm2=0; if (sm1%2==1) sm1=1; else sm1=0; if (sm16+sm8+sm4+sm2+sm1>=1) { if (sm16==1) { i=0; while (m16[i]==0) i++; v[i]=v[i]-16; } else if (sm8==1) { i=0; while (m8[i]==0) i++; v[i]=v[i]-8; } else if (sm4==1) { i=0; while (m4[i]==0) i++; v[i]=v[i]-4; } else if (sm2==1) { i=0; while (m2[i]==0) i++; v[i]=v[i]-2; } else if (sm1==1) { i=0; while (m1[i]==0) i++; v[i]--; } } else { i=0; while (v[i]==0) i++; if (n1%2==0) v[i]--; else v[i]=0; } } printf("%d",v[0]); for (i=1;i<n;i++) printf(" %d",v[i]); printf("\n"); return 0; }