Cod sursa(job #3287292)

Utilizator Andrei-Dani-10Pisla Andrei Daniel Andrei-Dani-10 Data 17 martie 2025 15:14:37
Problema Next Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;

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

const int maxdigits = 1000000;
typedef int Bigg[maxdigits + 2];

int64_t Div(Bigg x, int64_t div){
    int64_t r = 0;
    for(int i = x[0]; i >= 1; i--)
        r = 10 * r + x[i], x[i] = r / div, r %= div;
    for(; x[0] > 1 && x[x[0]] == 0; x[0]--);
    return r;
}

void Multiply(Bigg x, int64_t m){
    int64_t t = 0;
    for(int i = 1; i <= x[0]; i++, t /= 10)
        t += x[i] * m, x[i] = t % 10;
    for(; t; x[++x[0]] = t % 10, t /= 10);
}

void Show(Bigg x){
    for(int i = x[0]; i >= 1; i--)
        out<<x[i]; out<<"\n";
}

int64_t d, r;
string s;
Bigg n;

int main(){
    in>>s>>d;

    for(int it = 0; it < s.size(); it++)
        n[s.size() - it] = s[it] - '0';
    n[0] = s.size();

    r = Div(n, d);
    n[1] += (!!r);
    Multiply(n, d);

    Show(n);

    return 0;
}