Pagini recente » Cod sursa (job #2050293) | Cod sursa (job #3252145) | Cod sursa (job #471796) | Cod sursa (job #1219851) | Cod sursa (job #2941981)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
string s;
long long int v[1000011],i,n,d,rest,res[1000011],nr,rez[1000011],n_rez,rezu[1000011],n_rezu,diz[1000011],n_diz;
int main()
{
getline(fin,s);
n=s.size();
fin>>d;
for(i=n-1; i>=0; i--)
v[i]=s[n-i-1]-'0';
for(i=n-1; i>=0; i--)
{
rest=rest*10+v[i];
while(d<=rest)
rest=rest-d;
}
if(rest)
{
while(rest!=0)
{
res[nr]=rest%10;
rest=rest/10;
nr++;
}
int t=0;
n_rez=n;
for(i=0; i<n_rez; i++)
{
rez[i]=v[i]-res[i]+t;
t=0;
if(rez[i]<0)
{
rez[i]=rez[i]+10;
t=-1;
}
}
while(rez[n_rez-1]==0 && n_rez>=2)
n_rez--;
while(d!=0)
{
diz[n_diz]=d%10;
d=d/10;
n_diz++;
}
n_diz--;
int suma=0;
t=0;
n_rezu=max(n_rez,n_diz);
for(i=0; i<n_rezu; i++)
{
suma=rez[i]+diz[i]+t;
rezu[i]=suma%10;
t=suma/10;
}
if(t)
rezu[n_rezu++]=t;
for(i=0; i<n_rezu; i++)
fout<<rezu[i];
}
else
fout<<s;
return 0;
}