Cod sursa(job #1741773)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 15 august 2016 01:10:03
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
#include <cmath>
#include <vector>
#include <iomanip>
#include <queue>
#include <cstring>
#include <algorithm>
#include <queue>
#include <unordered_set>
#include <set>
#include <map>
#include <stack>
using namespace std;

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

const int MAXN = 1000000;

char v[3 + MAXN], v0[20];

int main() {
    cin >> v + 1;
    int n;
    n = strlen(v + 1);
    for (int i = 1; i <= n; i++)
        v[i] -= '0';
    for (int i = 1; i <= n / 2; i++)
        swap(v[i], v[n - i + 1]);
    long long d, r = 0;
    cin >> d;
    for (int i = n; i >= 1; i--)
        r = (r * 10 + v[i]) % d;
    if (r) {
        r = d - r;
        int m = 0;
        while (r) {
            m++;
            v0[m] = r % 10;
            r /= 10;
        }
        n = max(n, m);
        int c = 0;
        for (int i = 1; i <= n; i++) {
            if (i <= m)
                v[i] = v[i] + v0[i] + c;
            else
                v[i] = v[i] + c;
            c = v[i] / 10;
            v[i] %= 10;
        }
        if (c) {
            n++;
            v[n] = c;
        }
    }
    for (int i = n; i >= 1; i--)
        cout << (int) v[i];
    return 0;
}