Cod sursa(job #37553)

Utilizator tudalexTudorica Constantin Alexandru tudalex Data 25 martie 2007 10:55:21
Problema Next Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.63 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 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();
	for (i=a[0]; i>0; --i) printf("%d",a[i]);
	printf("\n");
	return 0;
}