Pagini recente » Cod sursa (job #1015106) | Cod sursa (job #1400307) | Cod sursa (job #1911017) | Cod sursa (job #2374623) | Cod sursa (job #1747923)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAX_DIGITS=1000005;
char s[MAX_DIGITS];
class hugen
{
private: int x[MAX_DIGITS];
public:hugen()
{
memset(x,0,sizeof(x));
x[0]=1;
}
hugen(char *s)
{
int i;
x[0]=strlen(s);
for (i=1;i<=x[0];i++)
x[i]=s[x[0]-i]-'0';
}
long long operator % (long long k)
{
int i;
long long r=0;
for (i=x[0];i>=1;i--)
{
r=r*10+x[i];
r=r%k;
}
return r;
}
hugen operator + (long long k)
{
hugen temp;
int nr,v[20];
for(nr=1;k>=1;nr++)
{
v[nr]=k%10;
k=k/10;
}
temp.x[0]=(x[0]>nr)?x[0]:nr;
int tr=0,aux;
for( int i=1;i<=temp.x[0];++i)
{
aux=x[i]+v[i]+tr;
temp.x[i]=aux%10;
tr=aux/10;
}
if(tr)
temp.x[++temp.x[0]]=tr;
return temp;
}
void print()
{
for(int i=x[0];i>=1;--i)
printf("%d",x[i]);
printf("\n");
}
};
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
long long d,r;
gets(s);
hugen n(s);
scanf("%lld",&d);
r=n%d;
n=n+(d-r);
n.print();
}