Pagini recente » Cod sursa (job #168963) | Cod sursa (job #3176525) | Cod sursa (job #2455768) | Cod sursa (job #466868) | Cod sursa (job #2186455)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char a[1000005], b[1000005], c[1000005];
long long imp(int k, int n){
int i, r;
r = 0;
for(i = n;i > 0;i--){
r = r * 10 + a[i] - '0';
r %= k;
}
return r;
}
void sum(int n, int m){
int l, r, i;
l = max(n, m);
for(i = 1;i <= l;i++){
if(i <= n && i <= m){
c[i] = (r + a[i] - '0' + b[i] - '0') % 10 + '0';
r = (r + a[i] - '0' + b[i] - '0') / 10;
}
else
if(i <= n){
c[i] = (r + a[i]- '0') % 10 + '0';
r = (r + a[i] - '0') / 10;
}
else{
c[i] = (r + b[i] - '0') % 10 + '0';
r = (r + b[i] - '0') / 10;
}
}
if(r != 0)
c[++l] = l;
}
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
int n, m;
long long k, r;
gets(a + 1);
n = strlen(a + 1);
scanf("%lld", &k);
reverse(a + 1, a + n + 1);
r = imp(k, n);
r = (k - r) % k;
m = 0;
while(r > 0){
b[++m] = r % 10 + '0';
r /= 10;
}
sum(n, m);
reverse(c + 1, c + strlen(c + 1) + 1);
printf("%s", c + 1);
return 0;
}