Cod sursa(job #123068)

Utilizator tamasgyGyorfi Tamas tamasgy Data 14 ianuarie 2008 15:46:24
Problema Next Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>

int main()
{
    char a[1000001],b[1000001];
    long long int d,t=0;
    long int i=0,n,m;
    FILE *r;
    r=fopen("next.in","r");
    a[0]=0;
    do
    {
        i++;
    }
    while ((a[i]=getc(r))!='\n');
    n=i-1;
    fscanf(r,"%lld",&d);

    for (i=1;i<=n;i++)
    {
        t=(t*10+(a[i]-'0'))%d;
    }
    fclose(r);
    r=fopen("next.out","w");
    m=0;
    i=0;
    if (t!=0)
    {
    while (d!=t)
    {
        i++;
        b[i]=(d-t)%10;
        d=(d-t)/10+t;
    }
    t=0;
    m=i;
    for (i=m+1;i<=n;i++)
        b[i]=0;
    for (i=1;(i<=n || i<=m);i++)
    {
        a[n-i+1] = ((t+= (a[n-i+1]-'0')+b[i]) % 10) +'0';
        t=t/10;
        if ((i==n)&&(t!=0))
            fprintf(r,"%lld",t);
    }
    }
    for (i=1;i<=n;i++)
        fprintf(r,"%c",a[i]);
     fclose(r);
  return 0;
}