Cod sursa(job #69140)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 iulie 2007 14:28:26
Problema Sarpe Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<string.h>
char nn[1010];
int ln,ln2,i,j,m,n1[2010],n[2010],sol[2010];
int main()
{
	FILE *f,*g;
	f=fopen("sarpe.in","r");
	g=fopen("sarpe.out","w");
	fgets(nn,1000,f);
	ln=strlen(nn)-1;
        ln2=2*ln+5;
	for(i=0;i<ln;i++)
	n[i]=(int)(nn[ln-1-i]-'0');
	for(i=0;i<=ln;i++)
	{
	  if(n[i]){m=i;break;}
	  n1[i]=9;
	}
	n1[m]=n[m]-1;
	for(i=m+1;i<=ln;i++)
	n1[i]=n[i];
	for(i=0;i<=ln;i++)
	for(j=0;j<=ln;j++)
	sol[i+j]+=(n[i]*n1[j]);
	sol[0]+=2;
	for(i=0;i<=ln2;i++)
	sol[i]*=2;
	for(i=0;i<=ln2;i++)
	{sol[i+1]+=(sol[i]/10);
	 sol[i]%=10;
	}
	for(i=ln2;i>=1;i--)
	if(sol[i]){ m=i;break;}
	for(i=m;i>=0;i--)
	fprintf(g,"%d",sol[i]);
	fprintf(g,"\n");
	fcloseall();
	return 0;
}