Cod sursa(job #179558)

Utilizator pandaemonAndrei Popescu pandaemon Data 16 aprilie 2008 01:44:23
Problema Next Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#include<fstream.h>
#include<iostream.h>
#include<string.h>

#define MAX 1500000

int v[MAX],divz[20];

long long i,d,rest;

void add(int A[], int B[])
{
      long long i, t = 0;
      for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
	      A[i] = (t += A[i] + B[i]) % 10;
      A[0] = i - 1;
}


long long mod(int A[], long long B)
{
      long long i, t = 0;
      for (i = A[0]; i > 0; i--)
	      t = (t * 10 + A[i]) % B;
      return t;
}


main()
{
  fstream fin("next.in",ios::in);
  freopen("next.out","w",stdout);

  char *s; s=new char[MAX];

  fin.getline(s,MAX);

  for(i=strlen(s)-1; i>=0; i--) v[ ++v[0] ] = s[i] - '0';

  fin>>d;

  rest = mod(v,d);  d-=rest;

  while(d)
  { divz[++divz[0]]=d%10; d/=10; }

  add(v,divz);

  for(i=v[0]; i>0; i--) printf("%d",v[i]);


  printf("\n"); return 0;

}