Pagini recente » Cod sursa (job #470115) | Cod sursa (job #3303485) | Cod sursa (job #3313534) | Cod sursa (job #3345269) | Cod sursa (job #3341847)
#include <bits/stdc++.h>
using namespace std;
static unsigned long long modBig(const string &s, unsigned long long D) {
unsigned long long r = 0;
for(char ch : s) {
r = (r * 10 + (unsigned)(ch - '0')) % D;
}
return r;
}
static string addSmall(string s, unsigned long long x) {
int i = (int)s.size() - 1;
while(x > 0 || i >= 0) {
unsigned long long digit = (i >= 0 ? (unsigned long long)(s[i] - '0') : 0ULL);
unsigned long long sum = digit + (x % 10ULL);
if(i >= 0)
s[i] = char('0' + (sum % 10ULL));
else
s.insert(s.begin(), char('0' + (sum % 10ULL)));
x /= 10ULL;
if(sum >= 10ULL) {
x += 1ULL;
}
i--;
}
int p = 0;
while(p + 1 < (int)s.size() && s[p] == '0')
p++;
if(p)
s.erase(0, p);
return s;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ifstream fin("next.in");
ofstream fout("next.out");
string N;
unsigned long long D;
fin >> N >> D;
unsigned long long r = modBig(N, D);
if(r == 0) {
fout << N << "\n";
}
else {
unsigned long long add = D - r;
fout << addSmall(N, add) << "\n";
}
return 0;
}