Cod sursa(job #1687948)

Utilizator cristinamihaelaVija Cristina Mihaela cristinamihaela Data 13 aprilie 2016 10:06:22
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <algorithm>
#include<cstring>

using namespace std;
const int NMAX=1000000;
int a[NMAX+5];
char b[NMAX+5];
char s[NMAX+1];
ifstream fin("next.in");
ofstream fout("next.out");
void printh(int v[])
{
	for(int i=v[0];i>=1;i--)
		fout<<v[i];
	fout<<"\n";
}
long long rest_hn_int(int a[],long long k)
{
	long long r=0;
	int i;
	for(i=a[0];i>=1;i--)
	{
		r=r*10+a[i];
		r=r%k;
	}
	return r;
}
void adunh(int a[],char b[])
{
	int i,tr,aux,l;
	tr=0;
if(a[0]>b[0])
	l=a[0];
else
	l=b[0];
	a[0]=l;
	for(i=1;i<=a[0];i++)
	{
		aux=a[i]+b[i]+tr;
		a[i]=aux%10;
		tr=aux/10;
	}
	while(tr)
	{
		a[++a[0]]=tr%10;
		tr=tr/10;
	}
}
int main()
{long long d,r;
int i,n;
fin.getline(s,NMAX+1);
fin>>d;
n=strlen(s);
a[0]=n;
for(i=n-1;i>=0;i--)
	a[n-i]=s[i]-'0';
r=rest_hn_int(a,d);
if(r)
{
	d=d-r;
	do
	{
		b[++b[0]]=d%10;
		d=d/10;

	}while(d);
	adunh(a,b);}
	printh(a);
    return 0;
}