Cod sursa(job #38747)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 26 martie 2007 00:24:45
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 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];

int 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;
	A[1]+=r;
	FOR(i,1,n)
	{
		if(A[i]<10)
			break;
		A[i+1]+=A[i]/10;
		A[i]%=10;
	}
	for(i=n;i;--i)
		printf("%d",A[i]);
	printf("\n");

	return 0;
}