Cod sursa(job #268231)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 28 februarie 2009 22:43:24
Problema Next Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<algorithm>
using namespace std;
long long d;
short a[1000001];
void adun(long long nr){
	int i,t,x;
	for(i=2,a[1]=(t=a[1]+nr)%10,t/=10; i<=a[0]||t; t/=10,++i)
        a[i]=(t+=a[i])%10;
    a[0]=i-1;}
long long rest(){
	int i,t;
	for(i=a[0],t=0; i; --i)
		t=(t*10+a[i])%d;
	return t;}
void rev(){
    int i,x;
    short aux;
    for(i=1,x=a[0]; i<=x; ++i,--x){
        aux=a[i];
        a[i]=a[x];
        a[x]=aux;}}
void solve(){
	int i;
	long long r;
	char ch;
	for(scanf("%c",&ch); ch!='\n'; a[++a[0]]=ch-'0',scanf("%c",&ch));
	rev();
	scanf("%lld",&d);
	r=rest();
	adun((d-r)%d);
	for(i=a[0]; i; --i)
	   printf("%hd",a[i]);}
int main(){
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);
	solve();
	return 0;}