Cod sursa(job #68124)

Utilizator coderninuHasna Robert coderninu Data 26 iunie 2007 16:01:52
Problema Next Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#define infile "next.in"
#define outfile "next.out"
#define nmax 1000

int n[nmax+1], i, d2[17];
long long d;

void readdata()
{
 FILE *fin=fopen(infile, "r");
 char c;
 int aux;
 fscanf(fin, "%c", &c);
 while (c!='\n')
     {
      n[++n[0]]=c-'0';
      fscanf(fin, "%c", &c);
     }
 fscanf(fin, "%lld", &d);
 for (i=1; i<=n[0]/2; i++)
     {
      aux=n[i];
      n[i]=n[n[0]-i+1];
      n[n[0]-i+1]=aux;
     }
 fclose(fin);
}

void solve()
{
 int t=0;
 for (i=n[0]; i>0; i--)
     t=(t*10+n[i])%d;
 d-=t;
 while (d)
     {
      d2[++d2[0]]=d%10;
      d/=10;
     }
 t=0;
 for (i=1; i<=n[0] || i<=d2[0] || t; i++, t/=10)
     {
      t+=n[i]+d2[i];
      n[i]=t%10;
     }
 n[0]=i-1;
}

void writedata()
{
 FILE *fout=fopen(outfile, "w");
 for (i=n[0]; i>0; i--)
     fprintf(fout, "%d",n[i]);
 fclose(fout);
}

int main()
{
 readdata();
 solve();
 writedata();
 return 0;
}