Cod sursa(job #123054)

Utilizator tamasgyGyorfi Tamas tamasgy Data 14 ianuarie 2008 15:18:35
Problema Next Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>

int main()
{
    char a[1000000],b[1000000];
    long long int d,t=0;
    long int i=0;
    FILE *r;
    r=fopen("next.in","r");
    a[0]=0;
    do
    {
        i++;
    }
    while ((a[i]=getc(r))!='\n');
    a[0]=i-1;
    fscanf(r,"%lld",&d);
    for (i=1;i<=a[0];i++)
    {
        t=(t*10+(a[i]-'0'))%d;
    }
    fclose(r);
    r=fopen("next.out","w");
    b[0]=0;
    i=0;
    if (t!=0)
    {
    while (d!=t)
    {
        i++;
        b[i]=(d-t)%10;
        d=(d-t)/10+t;
    }
    t=0;
    b[0]=i;

    for (i=1;(i<=a[0] || i<=b[0]);i++)
    {
        a[a[0]-i+1] = ((t+= (a[a[0]-i+1]-'0')+b[i]) % 10) +'0';
        t=t/10;
        if ((i==a[0])&&(t!=0))
            fprintf(r,"%lld",t);
    }
    }
    for (i=1;i<=a[0];i++)
        fprintf(r,"%c",a[i]);
     fclose(r);
  return 0;
}