Pagini recente » Cod sursa (job #720618) | Cod sursa (job #210744) | Cod sursa (job #83991) | Cod sursa (job #521631) | Cod sursa (job #2130743)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
long long d,r;
int a[1000005], v[1000005], j;
char an[1000005];
void adun(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
long long mod(int A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
int main()
{
int i;
ifstream f("next.in");
ofstream g("next.out");
f >> an;
f >> d;
a[0]=strlen(an);
for (i=0;i<a[0];i++)
a[i+1]=an[i]-48;
reverse(a+1,a+a[0]+1);
r=mod(a, d);
if (r == 0)
for (i = 1; i <= a[0]; i++)
g << a[i];
else
{
r = d - r;
j = 0;
while (r != 0)
{
v[++j] = r % 10;
r = r / 10;
}
v[0]=j;
adun (a,v);
}
for (i = a[0]; i >= 1; i--)
g << a[i];
f.close();
g.close();
return 0;
}