Pagini recente » Cod sursa (job #2075093) | Cod sursa (job #2616171) | Cod sursa (job #154192) | Cod sursa (job #1267703) | Cod sursa (job #1787137)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f ("next.in");
ofstream g ("next.out");
typedef char cifra;
const int MAXN = 1000000;
cifra N[MAXN + 2];
long long D, rest;
int lN;
void afisare (cifra A[], int lA)
{
for (int i = lA; i >= 1; i--)
g << int (A[i]);
}
void citire()
{
f >> N;
lN = strlen (N);
N[lN] = N[0] - '0';
for (int i = lN - 1, j=1; i >= j; i--, j++)
{
N[i] -= 48, N[j] -= 48;
swap (N[i], N[j]);
}
f >> D;
}
long long mod (cifra A[], long long B, int lA)
{
long long t = 0;
int i;
for (i = lA; i >= 1; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add (cifra A[], long long t, int lA)
{
int i;
for (i = 1; i <= lA || t; i++, t /= 10)
A[i] = (t += A[i]) % 10;
lA = i - 1;
afisare (A, lA);
}
int main()
{
citire();
rest = mod (N, D, lN);
rest = D - rest;
if (rest == D) rest = 0;
add (N, rest, lN);
return 0;
}