Cod sursa(job #1484422)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 11 septembrie 2015 10:16:34
Problema Next Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
char s[1000002];
int x[20],y[20],n,i,t,f[1000002];
long long d,m;
int main() {
    freopen("next.in","r",stdin),freopen("next.out","w",stdout),fgets(s,1000005,stdin),scanf("%lld",&d);
    for(i=0;s[i]!='\n';i++)
        f[i+1]=s[i]-'0';
    for(f[0]=i,i=1;i<=f[0]/2;i++)
        t=f[i],f[i]=f[f[0]-i+1],f[f[0]-i+1]=t;
    for(m=0,i=f[0];i;i--)
        m=(m*10+f[i])%d;
    for(d-=m,y[0]=0;d;y[++y[0]]=d%10,d/=10);
    for(t=0,i=1;i<=f[0]||i<=y[0]||t;i++,t/=10)
        f[i]=(t+=f[i]+y[i])%10;
    if(!m)
        printf("%s",s);
    else
        for(f[0]=i-1,i=f[0];i;i--)
            printf("%d",f[i]);
}