Cod sursa(job #3162290)

Utilizator AswVwsACamburu Luca AswVwsA Data 28 octombrie 2023 19:39:31
Problema Next Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
//oftica si durere in suflet
#include <fstream>
#include <vector>
#include <algorithm>
#define ll long long

using namespace std;

//min M >= N M % D = 0

//(N / D + bool(N % D)) * D

const int LEN = 1e6 + 3;

char s[LEN + 1];
int nr[LEN + 1];
int cat[LEN + 1];
int ans[LEN + 1];


signed main()
{
    ifstream cin("next.in");
    ofstream cout("next.out");
    ll d;
    int i;
    cin >> s >> d;

    for (i = 0; s[i]; i++);
    nr[0] = i;
    for (i = nr[0] - 1; i >= 0; i--)
        nr[nr[0] - i] = s[i] - '0';
    ll rest = 0;
    for (i = nr[0]; i >= 1; i--)
    {
        rest = rest * 10 + nr[i];
        rest %= d;
    }
    if (rest != 0)
    {
        rest = d - rest;
        int tr = 0;
        for (i = 1; i <= nr[0] or rest or tr; i++, rest /= 10)
            {
                nr[i] = nr[i] + rest % 10 + tr;
                tr = nr[i] / 10;
                nr[i] %= 10;
            }
        nr[0] = i - 1;
    }
    for (i = nr[0]; i >= 1; i--)
        cout << nr[i];
}