Cod sursa(job #11414)

Utilizator FlorianFlorian Marcu Florian Data 31 ianuarie 2007 17:44:13
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include<stdio.h>
int main()
{long unsigned max=0,v[10000],u[10000],x[10000],t,c,i,n,j,s,r=1,ok;
FILE *f,*g;
f=fopen("cifra.in","r");
g=fopen("cifra.out","w");
fscanf(f,"%ld",&t);
for (i=1; i<=t; i++)
	{fscanf(f,"%ld",&n);
	if (i<=10000) v[i]=n;
	else if (i<=20000) u[i]=n;
	else x[i]=n;
	if (n>max) max=n;}

s=0;
for (j=1; j<=max; j++)
		{c=j%10;

		switch(c)
		{	case 0:s=s+c; break;
			case 1: s=s+c;break;
			case 2: switch ( j%2)
						{case 0: s=s+4; break;
						case 1: s=s+8; break;
						case 2:s=s+6;break;
						case 3:s=s+2; break;  }; break;
			case 3: switch ( j%3)
						{case 0:s=s+7; break;
						case 1: s=s+1; break;
						case 2: s=s+3; break;
						case 3: s=s+9; break;} break;
			case 4: switch (j%4)
						{case 0:s=s+6;  break;
						case 1: s=s+4;break;}; break;
			case 5:s=s+5; break;
			case 6: s=s+6; break;
			case 7: switch(j%7)
				{case 0: s=s+9; break;
				case 1: s=s+3;      break;
				case 2: s=s+1;break;
				case 3 : s=s+7; break;};break;
			case 8: switch (j%8)
				{case 0: s=s+4; break;
				case 1: s=s+2; break;
				case 2:s=s+6; break;
				case 3:s=s+8; break;};break ;
			case 9: switch(j%9)
				{case 0: s=s+1;    break;
				case 1: s=s+9;break;     }break;}
		ok=1;
		for (i=r; i<=t; i++&&ok==1)
			{if (i<=10000) if (j==v[i]) {ok=0; r=i;fprintf(g,"%d\n",s%10); }
			else if (i<=20000) if (j==u[i]) {ok=0;r=i; fprintf(g,"%ld\n", s%10);}
			else if (j==x[i]) {ok=0; r=i;fprintf(g,"%ld\n",s%10);}}}
fclose(f);
fclose(g);
return 0;}