Cod sursa(job #37452)

Utilizator tudalexTudorica Constantin Alexandru tudalex Data 25 martie 2007 09:53:11
Problema Next Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.64 kb
#include <stdio.h>
#include <string.h>
char s[1000001]; 
int a[1000001], b[20];
int l,i;
long long m,d;

void add(int A[], int B[])
{
	int i, t = 0;
	for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
		A[i] = (t += A[i] + B[i]) % 10;
	A[0] = i - 1;
}

void mod()
{
	int i;
	for (i = a[0]; i > 0; --i)
		m = (m * 10 + a[i]) % d;
	
}

int main()
{
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	scanf("%s",&s);
	scanf("%lld",&d);
	l=strlen(s);
	a[0]=l;
	for (i=0; i<l; ++i) a[l-i]=s[i]-'0';
	mod();
	m=d-m;
	i=0;
	while (m>0)
	{
		b[++i]=m%10;
		m/=10;
	}
	b[0]=i;
	add(a,b);
	for (i=a[0]; i>0; --i) printf("%d",a[i]);
	printf("\n");
	return 0;
}