Cod sursa(job #39354)

Utilizator m_dersidanDersidan Mihai m_dersidan Data 26 martie 2007 17:39:51
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
# include <stdio.h>
# include <string.h>

# define  _fin	"next.in"
# define  _fout "next.out"

# define  maxn	1000003


short n[maxn], ad[maxn];
long long d, r, t, szn, szadd;
char  buf[maxn];
int   i;


int main()
{
	FILE *fin=fopen(_fin,"r");//freopen(_fin, "r", stdin);
	freopen(_fout,"w", stdout);
	//scanf("%s\n%lld", buf, &d);
	fgets(buf, maxn, fin);
	fscanf(fin, "%lld", &d);
	for (i=strlen(buf)-2; i>=0; i--) n[++szn]=buf[i]-0x30;
	//r = mod(n, d);
	for (t=0,i=szn;i>0;i--) r = (r*10+n[i]) % d;
	
	if ( r ) {
		d=d-r;
		while ( d ) ad[++ad[0]]=short(d%10), d/=10;
		//add(n, ad);
		for (t=0,i=1; i<=ad[0]||t||i<=szn; i++,t/=10)
			n[i]=(t+=(n[i]+ad[i]))%10;
		szn=i-1;
	}
	
	for (i=szn; i>=1; i--) printf("%d", n[i]);
	printf("\n");
	
	return 0;
}