Cod sursa(job #46069)

Utilizator VmanDuta Vlad Vman Data 2 aprilie 2007 11:56:10
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define maxcif 1000001

long n[maxcif],i;
char c;
long long d,r,rest;

int main()
{
 freopen("next.in","r",stdin);
 do
   {
    scanf("%c",&c);
    n[++n[0]]=c-'0';
   }
 while (c!='\n');
 --n[0];
 scanf("%lld",&d);
 fclose(stdin);

 for (i=1;i<=n[0];++i)
     {
      rest=(rest*10+n[i])%d;
     }
 if (rest>0) rest=d-rest;
 for (i=n[0];i>0;--i)
     {
      if ((n[i]+(rest%10))>9) r=1;
         else r=0;
      n[i]=(n[i]+rest)%10;
      rest=rest/10+r;
     }
 freopen("next.out","w",stdout);
 if (rest>0) printf("%lld",rest);
 for (i=1;i<=n[0];++i)
     printf("%d",n[i]);
 fclose(stdout);
 return 0;
}