Cod sursa(job #328872)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 3 iulie 2009 16:42:39
Problema Next Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<stdio.h>

int a[1000003],i,j,n,b[1000000];
long long d,r;
char *c;

long long mod(int A[], long long B)
{
      long long i, t = 0;
      for (i = A[0]; i > 0; i--)
              t = (t * 10 + A[i]) % B;
      return t;
}

void add(int A[], int B[])
{
      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);
    c =new  char[1000003];
    for(i=1;c[i-1]!=10;i++)  scanf("%c",&c[i]);
    i--;
    i--;
    n=i;
    for(i=n;i>=1;--i)  a[++a[0]]=c[i]-48;
    delete c;
    scanf("%lld",&d);
    r=mod(a,d);
    d=d-r;
    while(d) { b[++b[0]]=d%10;
               d/=10;
             }
    add(a,b);
    for(i=a[0];i>=1;--i) printf("%d",a[i]);
    printf("\n");
    fclose(stdin);
    fclose(stdout);
    return 0;           
}