Pagini recente » Cod sursa (job #1631985) | Cod sursa (job #3280505) | Cod sursa (job #3305086) | Cod sursa (job #452466) | Cod sursa (job #721142)
Cod sursa(job #721142)
#include <fstream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
int n, sol[1000005];
char a[1000005];
long long d;
inline void Read()
{
ifstream f("next.in");
f>>a;
f>>d;
f.close();
n = strlen(a);
for (int i=1; i<=n; i++)
sol[n-i+1] = (int)(a[i-1] - '0');
sol[0] = n;
}
inline long long mod()
{
int i;
long long t = 0;
for (i = n; i; i--)
t = (t * 10 + sol[i]) % d;
return t;
}
inline void add(int B[], int nb)
{
int i, t = 0;
for (i=1; i<=n || i<=nb || t; i++, t/=10)
sol[i] = (t += sol[i] + B[i]) % 10;
sol[0] = i - 1;
}
inline void Solve()
{
long long rest;
rest = mod();
if (rest)
{
rest = d-rest;
int Rest[50], nr;
for (int i = 0; i<50; i++)
Rest[i] = 0;
nr = 0;
while (rest)
{
Rest[++nr] = rest%10;
rest/=10;
}
Rest[0] = nr;
add(Rest, nr);
}
}
inline void Write()
{
ofstream g("next.out");
for (int i = sol[0]; i; i--)
g<<sol[i];
g<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}