Cod sursa(job #527717)
#include <stdio.h>
#include <string>
#define maxn 1000050
#define ll long long
char aux[maxn];
ll D;
int i,N,v[maxn];
void transf()
{
N=strlen(aux)-1;
for(i=1;i<=N;i++)
v[i]=aux[i]-'0';
}
void imp()
{
int 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;
}
}
void adun()
{
int 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()
{
int r=0,aux;
for(i=N;i>=0 || r>0;i--)
{
aux=v[i];
v[i]=(v[i]*D+r)%10;
r=(aux*D)/10;
}
if(v[0]>0)
{
N++;
for(i=N;i;i--)
v[i]=v[i-1];
v[0]=0;
}
}
void afisare()
{
for(i=1;i<=N;i++)
printf("%d",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();
adun();
inm();
afisare();
}