Cod sursa(job #1484404)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 11 septembrie 2015 09:09:46
Problema Next Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<string.h>
char s[1000005],e[1000005];
int x[20],u[20],n,i,k,j,t,l,r;
long long d,m;
int main() {
    freopen("next.in","r",stdin),freopen("next.out","w",stdout),fgets(s,1000005,stdin),scanf("%lld",&d),n=strlen(s);
    for(m=i=0;i<n;i++)
        m=(m*10+(s[i]-'0'))%d;
    for(;m;x[++k]=m%10,m/=10);
    for(i=1;i<=k;i++)
        u[i]=x[k-i+1];
    for(i=n-1,j=k,t=l=0;i>=0&&j;i--,j--,t/=10)
        e[++l]=((t+=(s[i]-'0')+u[j])%10)+'0';
    for(r=i;r>=0;r--,t/=10)
        e[++l]=((t+=(s[r]-'0'))%10)+'0';
    for(r=j;r;r--,t/=10)
        e[++l]=((t+=u[r])%10)+'0';
    if(t)
        e[++l]=t+'0';
    for(i=l;i;i--)
        printf("%c",e[i]);
}