Cod sursa(job #44661)

Utilizator peanutzAndrei Homorodean peanutz Data 31 martie 2007 16:57:13
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <string.h>

#define NMAX 490000

long long a[NMAX];
long long d;
long long r;


void read()
{
	long i;
	char c[NMAX];
	long n;

	scanf("%s\n", c);
	n = strlen(c)-1;
	//a[a[0]] = n-1;

	do
	{
		//scanf("%c", &c);

		if(c[n] != '\n')
		{
			a[ ++a[0] ] = c[n--] - '0';
		}
	}	while(n > -1);

	scanf("%lld\n", &d);
}

long long rest(long long d)
{
	long long t;
	long long i;

	for(i = a[0], t = 0; i; --i)
	{
		t = (t * 10 + a[i]) % d;
	}
return t;
}

void adunare(long long b)
{
	long long i;

	a[1] += b;

	i = 1;

	while(a[i] > 9)
	{
		a[i+1] += a[i] / 10;

		a[i++] = a[i] % 10;
	}
}
void write()
{
	long i;

	for(i = a[0]; i; --i)
	{
		printf("%ld", a[i]);
	}
	printf("\n");
}
int main()
{
	freopen("next.in", "r", stdin);
	freopen("next.out", "w", stdout);

	read();

	adunare((d - rest(d)) % d);

	//int aux = rest(d);

	write();

	fclose(stdin);
	fclose(stdout);

	return 0;
}