Cod sursa(job #43584)

Utilizator crusRus Cristian crus Data 30 martie 2007 12:03:14
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <string.h>
#define input "next.in"
#define output "next.out"
char n[1000030];
long i;
long nr[1000030];
long long d,t;
void citire()
{
 FILE *fin;
 fin=fopen(input,"r");
 fscanf(fin,"%s",n);
 fscanf(fin,"%lld",&d);
 fclose(fin);
}
void solve()
{
	long pz=strlen(n);
	for (i=strlen(n)-1;i>=0;i--)
		nr[pz-i]=(int)(n[i]-'0');
	nr[0]=strlen(n);
	d=d;
	t=0;
	for (i=nr[0];i;i--)
		t=(t*10+nr[i])%d;
	if (t==0) d=0;
	   else d-=t;

	long long cif=nr[1]+d;	
	for (i=2;i<=nr[0]+1;i++)
		{		 
		 nr[i-1]=cif%10;
		 cif=cif/10+nr[i];
		}
	while (cif>0)
		{
		 nr[0]++;
		 nr[nr[0]]=cif%10;
		 cif/=10;
		}
}
void afisare()
{
	FILE *fout;
	fout=fopen(output,"w");
	for (i=nr[0];i;i--)
		fprintf(fout,"%lld",nr[i]);
	fclose(fout);
}
int main()
{
	citire();
	solve();
	afisare();
	return 0;
}