Cod sursa(job #38749)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 26 martie 2007 00:36:00
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <string.h>

typedef long long lint;

#define nmax (1<<20)
#define FOR(i,s,d) for(i=(s);i<(d);++i)

int A[nmax],n;
lint d,r;
char s[nmax];

lint imp()
{
	int i;
	lint t=0;
	for(i=A[0];i;i--)
		t=(t*10+A[i])%d;
	return t;
}

int main()
{
	int i;
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	scanf("%s",s);
	n=strlen(s);
	scanf("%lld",&d);
	FOR(i,0,n)
		A[n-i]=s[i]-'0';
	A[0]=n;	
	r=imp();
	if(r)
		r=d-r;
	for(i=1;r;r/=10,i++)
	{
		r+=A[i];
		A[i]=r%10;
		if(i>A[0])
			A[0]=i;
	}
	for(i=A[0];i;--i)
		printf("%d",A[i]);
	printf("\n");

	return 0;
}