Pagini recente » Cod sursa (job #735357) | Cod sursa (job #122845) | Cod sursa (job #346358) | Cod sursa (job #1941806) | Cod sursa (job #721145)
Cod sursa(job #721145)
#include <fstream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
int n, sol[1000222];
char a[1000222];
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;
rest = rest%d;
int Rest[200], nr;
for (int i = 0; i<199; 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;
}