Cod sursa(job #527723)
#include <stdio.h>
#include <string>
#define maxn 1000050
#define ll long long
char aux[maxn];
ll D;
ll i,N,v[maxn];
bool rest=false;
void transf()
{
N=strlen(aux)-1;
for(i=1;i<=N;i++)
v[i]=aux[i]-'0';
}
void imp()
{
ll r=0;
for(i=1;i<=N;i++)
{
r=10*r+v[i];
v[i]=r/D;
r=r%D;
}
if(v[1]==0 && v[2]>0)
{
for(i=1;i<=N-1;i++)
v[i]=v[i+1];
v[N--]=0;
}
if(r>0) rest=true;
}
void adun()
{
ll r; i=N;
do
{
v[i]++; r=0;
if(v[i]==10)
{
v[i]=0;
r=1;
}
i--;
}
while(r>0);
if(v[0]==1)
{
v[0]=0; v[1]=1;
N++; v[N]=0;
}
}
void inm()
{
ll r=0;
for(i=N;i;i--)
{
v[i]=v[i]*D+r;
r=v[i]/10;
v[i]=v[i]%10;
}
while(r)
{
N++;
v[0]=r%10;
r=r/10;
for(i=N;i;i--)
v[i]=v[i-1];
v[0]=0;
}
}
void afisare()
{
for(i=1;i<=N;i++)
printf("%lld",v[i]);
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s\n",aux+1); aux[0]=' ';
scanf("%lld",&D);
transf();
imp();
if(rest) adun();
inm();
afisare();
}