Cod sursa(job #44019)

Utilizator andrei.12Andrei Parvu andrei.12 Data 30 martie 2007 19:47:24
Problema Next Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<string.h>
#define max 1000005
int a[max], b, i, p, re[20];
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[20]){
	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;
	p=0;
	while (r>0){
		p++;
		re[p]=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;
}