Pagini recente » Cod sursa (job #1975976) | Cod sursa (job #493746) | Cod sursa (job #2460437) | Cod sursa (job #1252487) | Cod sursa (job #1059699)
#include <cstdio>
#include <algorithm>
#define Nmax 1000005
using namespace std;
int a[Nmax],aux[Nmax];
long long D;
inline void Convert(long long x)
{
while(x>0)
{
aux[++aux[0]]=x%10;
x/=10;
}
}
inline void Read()
{
int i,val,j;
char sir[Nmax];
freopen ("next.in","r",stdin);
scanf("%s", sir);
for(i=0;sir[i]!='\0';++i)
a[++a[0]]=sir[i]-'0';
i=1; j=a[0];
while(i<j)
{
val=a[i]; a[i]=a[j]; a[j]=val;
++i; --j;
}
scanf("%lld", &D);
}
inline long long Modulo(int A[], int len, long long B)
{
long long t=0;
for (int i = len; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void Aduna(int A[],int len1, int B[],int len2)
{
int i, t = 0;
for (i=1; i<=len1 || i<=len2 || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
inline void Solve()
{
int i;
long long rest;
rest=Modulo(a,a[0],D);
if(rest)
{
rest=D-rest;
Convert(rest);
Aduna(a,a[0],aux,aux[0]);
}
freopen ("next.out","w",stdout);
for(i=a[0];i>0;--i)
printf("%d", a[i]);
printf("\n");
}
int main()
{
Read();
Solve();
return 0;
}