Pagini recente » Cod sursa (job #81271) | Cod sursa (job #2025031) | Cod sursa (job #2956082) | Statistici Racsan Rares Vasile (Rares_Racsan) | Cod sursa (job #1059636)
#include <fstream>
#include <algorithm>
#define Nmax 1000005
using namespace std;
char sir[Nmax];
int a[Nmax],D,aux[50];
inline void Convert(int a)
{
while(a>0)
{
aux[++aux[0]]=a%10;
a/=10;
}
}
inline void Read()
{
int i,aux,j;
ifstream fin("next.in");
fin.getline(sir, 1000005);
for(i=0;sir[i];++i)
a[++a[0]]=sir[i]-'0';
i=1; j=a[0];
while(i<j)
{
aux=a[i]; a[i]=a[j]; a[j]=aux;
++i; --j;
}
fin>>D;
fin.close();
}
inline int Modulo(int a[], int n, int p)
{
int i,x=0,q;
for(i=n;i>=1;i--)
{
x=x*10+a[i];
q=x/p;
x=x-q*p;
}
return x;
}
inline void Aduna(int a[], int &n, int b[], int m)
{
int k,i,rest,x;
k=max(n,m);rest=0;
for(i=1;i<=k;i++)
{
x=a[i]+b[i]+rest;
if(x>=10)
{
a[i]=x-10;
rest=1;
}
else
{
a[i]=x;
rest=0;
}
}
n=k;
if(rest)
a[++n]=rest;
}
inline void Solve()
{
int i,rest;
rest=D-Modulo(a,a[0],D);
if(rest!=D)
{
Convert(rest);
Aduna(a,a[0],aux,aux[0]);
}
ofstream fout("next.out");
for(i=a[0];i>0;--i)
fout<<a[i];
fout<<"\n";
fout.close();
}
int main()
{
Read();
Solve();
return 0;
}