Pagini recente » Cod sursa (job #3278825) | Cod sursa (job #3290012) | Cod sursa (job #2844264) | Cod sursa (job #1973536) | Cod sursa (job #3232664)
#include <bits/stdc++.h>
using namespace std;
vector<int> add(vector<int>& a, vector<int>& b)
{
int na = a.size(), nb = b.size();
vector<int> ans;
int t = 0;
int i = na - 1, j = nb - 1;
while(i >= 0 && j >= 0)
{
t += a[i] + b[j];
ans.push_back(t % 10);
t /= 10;
--i, --j;
}
while(i >= 0)
{
t += a[i--];
ans.push_back(t % 10);
t /= 10;
}
while(j >= 0)
{
t += b[j--];
ans.push_back(t % 10);
t /= 10;
}
if(t)
ans.push_back(1);
reverse(ans.begin(), ans.end());
return ans;
}
int main() {
freopen("next.in", "r", stdin);
froepen("next.out", "w", stdout);
string s;
uint64_t d;
cin >> s >> d;
uint64_t rest = 0;
for(int i = 0;i < s.size();++i)
rest = (10 * rest + (s[i] - '0')) % d;
if(!rest)
{
cout << s << "\n";
return 0;
}
uint64_t nr = d - rest;
vector<int> a, b;
for(int i = 0;i < s.size();++i)
a.push_back(s[i] - '0');
while(nr)
{
b.push_back(nr % 10);
nr /= 10;
}
reverse(b.begin(), b.end());
vector<int> r = add(a, b);
for(int i = 0;i < r.size();++i)
cout << r[i];
}