Cod sursa(job #610628)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 28 august 2011 12:48:34
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;
int n,A[1000005];
long long D;
char s[1000005];

void Citire()
{
	int i;
	ifstream fin("next.in");
	fin>>s;
	fin>>D;
	fin.close();
	
	n=strlen(s);
	for(i=1;i<=n;i++)
		A[i]=s[i-1]-'0';
}

long long Rest()
{
	int i;
	long long r=0;
	for(i=1;i<=n;i++)
		r=(r*10+A[i])%D;
	return r;
}

void Aduna(long long x)
{
	int i;
	for(i=n;i>0 || x;i--,x=x/10)
		A[i]=(x+=A[i])%10;
}

void Rezolvare()
{
	long long rest;
	rest=Rest();
	if(rest)
	{
		rest=D-rest;
		rest=rest%D;
		Aduna(rest);
	}
}

void Afisare()
{
	ofstream fout("next.out");
	int i;
	if(A[0]) i=0;
		else i=1;
	for(;i<=n;i++)
		fout<<A[i];
	fout.close();
}

int main()
{
	Citire();
	Rezolvare();
	Afisare();
	return 0;
}