Pagini recente » Cod sursa (job #2986232) | Cod sursa (job #164532) | Cod sursa (job #1792016) | Cod sursa (job #333837) | Cod sursa (job #2294714)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
const int NMAX=10000001;
long long k;
int A[NMAX], K[NMAX];
char c[NMAX];
void rest(long long D, long long &CAT)
{
long long T = 0;
for(int i = A[0]; i > 0; i--)
{
T = T * 10 + A[i];
T %= D;
}
CAT = D - T;
}
void adunare()
{
int T=0;
if(A[0] < K[0])
A[0] = K[0];
for(int i = 1; i <= A[0]; i++)
{
A[i] += T + K[i];
T = A[i] / 10;
A[i] %= 10;
}
if(T > 0) A[++A[0]] = T;
}
int main()
{
f >> c;
k = strlen(c);
A[0] = k;
for(int i = k - 1; i >= 0; i--)
A[k - i]= c[i] - '0';
long long D, R;
f >> D;
rest(D, R);
if(D != R)
{
while(R)
{
K[++K[0]] = R % 10;
R /= 10;
}
adunare();
}
for(int i = A[0]; i >= 1; i--)
g << A[i];
return 0;
}