Pagini recente » Cod sursa (job #2767853) | Cod sursa (job #1986189) | Cod sursa (job #2317232) | Cod sursa (job #1755508) | Cod sursa (job #986507)
Cod sursa(job #986507)
#include <fstream>
#include <string.h>
#include <algorithm>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
long long D;
int N[1000002],V[18];
char Aux[1000002];
void Swap(int& x,int& y)
{
int aux;
aux=x;
x=y;
y=aux;
}
bool is_digit(char ch)
{
return ch>='0' && ch<='9';
}
void Read()
{
int i=0;
char ch;
f>>(Aux+1)>>D;
N[0]=strlen(Aux+1);
for(i=1;i<=N[0];i++)
N[i]=Aux[N[0]-i+1]-'0';
}
inline void Add (int A[], long long B)
{
int i; long long T=B;
for (i=1; i<=A[0] or T>0; ++i, T/=10)
{
A[i]=(T+=A[i])%10;
}
A[0]=i-1;
}
void AtribValue(int H[], long long X) {
H[0] = 0;
while (X) {
++H[0];
H[H[0]] = X % 10;
X /= 10;
}
}
long long mod(int A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void Solve()
{
long long Rest=mod(N,D);
if(Rest==0)
Rest=D;
long long aux=D-Rest;
Add(N,aux);
for(int i=N[0];i>=1;i--)
g<<N[i];
g<<"\n";
}
int main()
{
Read();
Solve();
/*for(int i=1;i<=99999;i++)
g<<9;
g<<"\n";
g<<10000000000000000;*/
return 0;
}