Cod sursa(job #751618)

Utilizator SteveStefan Eniceicu Steve Data 26 mai 2012 14:36:35
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <string>

using namespace std;

string s;
int N[1000010], ciudy;
long long D;

ifstream fin ("next.in");
ofstream fout ("next.out");

void Citire ()
{
	fin >> s;
	N[0] = s.size ();
	for (int i = 0; i < N[0]; i++)
	{
		N[i + 1] = s[i] - 48;
	}
	fin >> D;
	ciudy = N[0];
	fin.close ();
}

long long Rest ()
{
	long long t = 0;
	for (int i = 1; i <= N[0]; i++)
	{
		t *= 10;
		t = t + 1LL * N[i];
		if (D < t) t %= D;
	}
	return t;
}

void Business ()
{
	int a = Rest ();
	if (a == 0) return;
	D -= a;
	for (int i = N[0]; i >= 1; i--)
	{
		N[i] += D;
		D = N[i] / 10;
		N[i] %= 10;
	}
	if (D > 0) N[1] += D * 10;
}

void Scriere ()
{
	for (int i = 1; i <= ciudy; i++)
	{
		fout << N[i];
	}
	fout.close ();
}

int main ()
{
	Citire ();
	Business ();
	Scriere ();
	return 0;
}