Cod sursa(job #295518)

Utilizator funkydvdIancu David Traian funkydvd Data 3 aprilie 2009 13:02:56
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream f1 ("next.in");
ofstream f2 ("next.out");
int v[100],v2[17];
void suma ()
{
	  int i, t = 0,x;  
       if (v[0]>v2[0]) x=v[0];
         else x=v2[0];
       for (i=x; i>=1||t; i--)
		v[i]=(t+=v[i]+v2[i])%10;
	  v[0] = i - 1;  
}  
int mod(int v[100], int b)
{
      int i, t = 0;
      for (i = 1; i<=v[0]; i++)
              t = (t*10 + v[i]) % b;
      return t;
}

int main()
{

	int m,i;
	long long d,t;
	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;
	if (t==d) for (i=1; i<=v[0]; i++) f2<<v[i];
	 else {
		 i=1;
		 while (t!=0) {v2[i]=t%10; t/=10; i++;}
		 v2[0]=i;
	     suma();
		 for (i=1; i<=v[0]; i++) f2<<v[i];
	 }
	return 0;
}