Cod sursa(job #316509)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 19 mai 2009 21:38:12
Problema Next Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
 #include<fstream>
using namespace std;
ifstream f1 ("next.in");
ofstream f2 ("next.out");
int v[1000001],v2[18],vf[1000001];
long long mod(int v[1000001], long long b)
{
      long long i;
      long long t = 0;
      for (i = 1; i<=v[0]; i++)
	t = (t*10 + v[i]) % b;
      return t;}
void suma()
 {
       long long i, t = 0;
       for (i=1; i<=vf[0] || i<=v2[0] || t; i++, t/=10)
	  vf[i] = (t += vf [i] + v2[i]) % 10;
       vf[0]=i-1;
}  
int main()
{

   long long i;
   long long d,t,x;
   char c;
   i=0;
   while (f1.get(c) && int(c)>=48) {i++; v[i]=int(c)-48;}
   v[0]=i;
   f1>>d;
   t=mod(v,d);
   t=(d-t)%d;
   for (i=1; i<=v[0]; i++) vf[i]=v[v[0]-i+1];
   x=v[0];
   i=1;
   while (t!=0) {v2[i]=t%10; t/=10; i++;}
   v2[0]=i-1;
    suma();
   if (x<v2[0]) x=v2[0];
   if (vf[x+1]>0) f2<<vf[x+1];
   for (i=x; i>=1; i--) f2<<vf[i];
   return 0;
}