Cod sursa(job #239039)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 3 ianuarie 2009 22:12:44
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#include<string.h>

int a[1000009];
long long d;

long long Mod()
 { long i;
   long long R=0;
   for (i=a[0];i;i--)
     R=(10*R+a[i])%d;
   return R;
 }

void adun(long long R)
{   long nr=0;
    while(R!=0)
     {
        nr++;
        a[nr]=R%10+a[nr];
        long pz=nr;
        while(a[pz]>=10)
         {a[pz+1]=a[pz+1]+1;
          a[pz]=a[pz]%10;
           pz++;
          }
        if(pz>a[0])
         a[0]=pz;
        R/=10;
     }
    for(int i=a[0];i>=1;i--)
     printf("%d",a[i]);
    printf("\n");
}

void solve()
{
    long long R=Mod();
    adun((d-R)%d);
}

int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    char c[1000009];
    fgets(c,1000009,stdin);
    long i=strlen(c)-1;
    if(c[i]=='\n')
      i--;
    for(;i>=0;i--)
      a[++a[0]]=c[i]-'0';
    scanf("%lld",&d);
    solve();
    return 0;
}