Cod sursa(job #69146)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 iulie 2007 14:45:25
Problema Sarpe Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 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,1002,f);
	ln=strlen(nn)-1;
	if(ln==1)
	 if(nn[0]=='1')
	 { fprintf(g,"2\n");fcloseall();return 0;}
	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;
}