Cod sursa(job #2240524)

Utilizator NOSCOPEPROKENDYMACHEAMACUMVREAU NOSCOPEPROKENDY Data 13 septembrie 2018 17:39:44
Problema Next Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;

char s[1000005];
int n;
long long a[1000005];
long long d;
int main()
{
    freopen("next.in", "r", stdin);
    freopen("next.out", "w", stdout);

    scanf("%s", s + 1);
    scanf("%lld", &d);

    n = strlen(s + 1);
    for(int i = 1; i <= n ; ++i)
        a[i] = s[n - i + 1] - '0';

    long long x = 0;
    for(int i = n; i >= 1 ; --i){
        x = x * 10 + a[i];
        if(x >= d){
            long long c = x / d;
            x = x - 1LL * c * d;
        }
    }
    long long ad = d - x;
    if(x == 0) ad = 0;

    a[1] += ad;
    long long t = a[1] / 10;
    a[1] %= 10;

    for(int i = 2; i <= n ; ++i){
        a[i] += t;
        t = a[i] / 10;
        a[i] %= 10;
    }
    while(t){
        a[++n] = t;
        t = a[n] / 10;
        a[n] %= 10;
    }

    for(int i = n; i >= 1 ; --i)
        printf("%lld", a[i]);
    return 0;
}