Cod sursa(job #209814)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 24 septembrie 2008 22:59:07
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char ns[1000010];
long long int p,i,ln,d,c,r,p10,k;
void readd(),solve();
int main()
{	readd();
	solve();
	return 0;
}
void readd()
{	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	gets(ns);
	ln=strlen(ns);
	scanf("%lld",&d);
}
void solve()
{       if(ln<20)for(;;);
	p10=1;
	for(i=ln-1;i>=1;i--)
	{ c=(long int)(ns[i-1]-48);
	  r+=c*p10;r%=d;p10*=10;p10%=d;
	}
	p=ln-1;k=0;
	if(!r){printf("%s",ns);return;}
	r=d-r;
	while(r)
	{ p--;ns[p]+=r%10;r/=10;k++;if(ns[p]>57){ns[p]-=10;ns[p-1]++;}}
	while(ns[p-1]>57){p--;ns[p]-=10;ns[p-1]++;}
	printf("%s",ns);
}