Pagini recente » Cod sursa (job #1855092) | Cod sursa (job #1923946) | Cod sursa (job #1855648) | Cod sursa (job #1998339) | Cod sursa (job #2148748)
#include <cstdio>
const int MAXN = 1e6;
char s[MAXN + 1];
int a[MAXN + 1];
static inline int max(int a, int b) {
return a > b ? a : b;
}
void add(int *a, long long b) {
int i = 1;
while (b > 0) {
b += a[i];
a[i] = b % 10;
b /= 10;
++i;
}
a[0] = max(a[0], i);
}
long long mod(int *a, long long b) {
int i = a[0];
long long t = 0;
while (i > 0) {
t = (10 * t + a[i]) % b;
--i;
}
return t;
}
int main() {
FILE *fin, *fout;
int n;
long long d;
char c;
fin = fopen("next.in", "r");
n = 0;
c = fgetc(fin);
while (c != '\n') {
s[++n] = c;
c = fgetc(fin);
}
fscanf(fin, "%lld", &d);
fclose(fin);
for (int i = n; i > 0; --i) {
a[++a[0]] = s[i] - '0';
}
d -= mod(a, d);
add(a, d);
fout = fopen("next.out", "w");
for (int i = a[0]; i > 0; --i) {
fprintf(fout, "%d", a[i]);
}
fclose(fout);
return 0;
}