Cod sursa(job #42759)

Utilizator pauldbPaul-Dan Baltescu pauldb Data 29 martie 2007 15:02:18
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <string>

#define maxn 1000010
#define ll long long

char a[maxn];
int n;
ll r,m,t;

void add(char a[],ll x)
{
     int aux,i;
     t=0;
     for (i=n;i>=0;i--)
     {
         aux=(a[i]+t+x%10) % 10;
         t=(a[i]+t+x%10) / 10;
         x/=10;
         a[i]=aux;
     }
     
     t+=x;
}

void print(char a[])
{
     int i;
     if (t) printf("%d",t);
     for (i=0;i<=n;i++) printf("%d",a[i]);
     printf("\n");
}

int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    
    fgets(a,maxn,stdin);
    n=strlen(a)-2;
    
    int i;
    
    scanf("%lld ",&m);
    
    for (i=0;i<=n;i++) 
    {
        a[i]-='0';
        r=(r*10+a[i])%m;
    }
    
    if (r!=0) r=m-r;
    
    add(a,r);    
    print(a);
    
    return 0;
}