Pagini recente » Cod sursa (job #2744250) | Cod sursa (job #574086) | Cod sursa (job #2788480) | Cod sursa (job #289731) | Cod sursa (job #2295600)
#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++)
{
T += A[i] + K[i];
A[i] = T % 10;
T /= 10;
}
if(T > 0) A[++A[0]] = 1;
}
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;
}