Pagini recente » Cod sursa (job #695289) | Cod sursa (job #2831610) | Cod sursa (job #1895908) | Cod sursa (job #2533214) | Cod sursa (job #2526553)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
#define NMAX 1000004
string str;
int n;
long long d,add;
struct Huge{
int data[NMAX];
}N;
long long mod(Huge &N,long long d)
{
long long x=0;
for (int i=N.data[0];i>=1;i--)
x=(x*10+N.data[i])%d;
return x;
}
void adunare(Huge &N)
{
int t=add;
for (int i=1;i<=N.data[0];i++)
{
t+=N.data[i];
N.data[i]=t%10;
t/=10;
}
while(t)
{
N.data[++N.data[0]]=t%10;
t/=10;
}
}
int main()
{
getline(fin,str);
n = str.size();
fin>>d;
N.data[0]=n;
for (int i=n;i>=1;i--)
{
N.data[i] = str[n-i] - '0';
}
add = d - mod(N,d);
if (add==d)
add=0;
adunare(N);
for (int i=N.data[0];i>=1;i--)
fout<<N.data[i];
fout<<'\n';
return 0;
}