Cod sursa(job #57101)

Utilizator cezar305Mr. Noname cezar305 Data 1 mai 2007 10:03:12
Problema Next Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#include <string.h>

int main(){
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    long long d,i,l,r,nr,j,rest,a;
    char ch[1000001];
    scanf("%s",ch);
    scanf("%I64d",&d);
    //printf("%I64d",d);
    nr=0;
    l=strlen(ch);
    if (l<=17)for (i=0;i<l;i++)nr=nr*10+ch[i]-'0';
    if ((nr&&nr>d)||l>17){
       
       /*r=0;j=-1;
       while (r<d){
             j++;
             r=r*10+ch[j]-'0';
       }
       r=r%d;
       while (j<l-1){
             j++;
             r=r*10+ch[j]-'0';
             r=r%d;
       }
       */
       r= 0;   
       for (i = 0; i < l; i++)   
              r= (r* 10 + ch[i]-'0') % d;   
       rest=0;
       if (r){
          r=d-r;
          for (i=l-1;i>=0;i--){
              a=ch[i]-'0';
              a+=rest;
              if (r){a=a+r%10;r=r/10;}
              rest=a/10;
              a=a%10;
              ch[i]='0'+a;
          }
       }
       if (rest)printf("%I64d",rest);
       printf("%s\n",ch);
    }
    else printf("%I64d\n",d);
    
    return 0;
}