Cod sursa(job #43890)

Utilizator andrei.12Andrei Parvu andrei.12 Data 30 martie 2007 17:08:03
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#include<string.h>
#define max 1000002
int a[max], b, i, p, re[16];
long long d, r;
char v[max];
int mod(int a[max], int b){
	int i, t=0;
	for (i=a[0];i>0;i--)
		t=(t*10+a[i])%b;
	return t;
}
void adn(int a[max], int b[16]){
	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;
}
int main(){
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	scanf("%s%lld",v,&d);
	b=strlen(v);
	for (i=0;i<b;i++)
		a[b-i]=v[i]-'0';
	a[0]=b;
	r=mod(a,d);
	r=(d-r)%d;
	p=0;
	i=1;
	while (r>0){
		p++;
		re[i]=r%10;
		r=r/10;
	}
	re[0]=p;
	adn(a,re);
	for (i=a[0];i>=1;i--)
		printf("%d",a[i]);
	printf("\n");
	return 0;
}