Cod sursa(job #3279546)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 23 februarie 2025 14:15:36
Problema Next Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("next.in");
ofstream fout("next.out");
const long long baza = 10;
long long d, nr[1000002];
string s;

static inline long long Rest() {
    long long t = 0;
    for(long long i = nr[0]; i >= 1; i--) {
        t = t * baza + nr[i];
        t %= d;
    }
    return t;
}

static inline long long Add(long long a) {
    long long t = a, i = 1;
    while(i <= nr[0] || t) {
        t += nr[i];
        nr[i] = t % baza;
        t /= baza;
        i++;
    }
    nr[0] = i - 1;
    return a;
}

int main() {
    fin >> s >> d;
    reverse(s.begin(), s.end());

    for(char cur : s) nr[++nr[0]] = cur - '0';

    Add(d - Rest());

    fout << nr[nr[0]];
    for(int i = nr[0] - 1; i >= 1; i--) fout << nr[i];

    return 0;
}