Cod sursa(job #2835612)

Utilizator luiz_felipeLuiz Felipe luiz_felipe Data 18 ianuarie 2022 22:58:53
Problema Next Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
using LLI = long long int;
const int dim = 1000000;
string numar;
int i, nrCif;
LLI d, parte, minte;
vector<LLI> cifre(dim + 11);
ifstream f("next.in");
ofstream g("next.out");

int main()
{
	for (f >> numar >> d, i = numar.size() - 1; i > -1; --i) cifre[i] = numar[numar.size() - 1 - i] - '0';
	i = numar.size() - 1;
	while (i > -1)
	{
		while (i > -1 && parte < d)
		{
			parte = parte * 10 + cifre[i];
			--i;
		}
		parte = parte - parte / d * d;
	}
	d = parte != 0 ? d - parte : 0;
	cifre[0] += d;
	for (i = 0; i < numar.size(); ++i)
	{
		cifre[i] += minte;
		minte = 0;
		minte += cifre[i] / 10;
		cifre[i] %= 10;
	}
	nrCif = numar.size() - 1;
	for (; minte > 0; minte /= 10) cifre[++nrCif] = minte % 10;
	for (i = nrCif; i > -1; --i) g << cifre[i];
}