Cod sursa(job #471025)

Utilizator darrenRares Buhai darren Data 16 iulie 2010 16:37:48
Problema Next Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <string>
#include <vector>

using namespace std;

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

void Read();
void Solve();
void Write();

string n;
long long d;

int main()
{
	Read();
	Solve();
	Write();
}

void Read()
{
	fin >> n >> d;
}

void Solve()
{
	int rest = 0;
	for (string::iterator it = n.begin(); it != n.end(); ++it)
	{
		rest *= 10, rest += *it - '0';
		if (rest > d) rest -= (rest / d) * d;
	}
	int need = d - rest;
	
	reverse(n.begin(), n.end());
	n[0] += need;
	
	int it = 0;
	while (n[it] > '9')
	{
		n[++it] += (n[it - 1] - '0') / 10;
		n[it - 1] = (n[it - 1] - '0') % 10 + '0';
	}
}

void Write()
{
	reverse(n.begin(), n.end());
	fout << n;
}