Cod sursa(job #1484428)

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