Pagini recente » Cod sursa (job #1905136) | Cod sursa (job #1272673) | Cod sursa (job #2673988) | Cod sursa (job #1522904) | Cod sursa (job #1001986)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
#define Nmax 1500000
typedef int BigInteger[Nmax];
BigInteger N;
string s;
long long D;
void read()
{
ifstream f("next.in");
f >> s >> D;
f.close();
}
void init()
{
for ( int i = s.length() - 1; i >= 0; i-- )
N[ ++N[0] ] = s[i] - 48;
}
void aduna( BigInteger A, long long B )
{
int i;
long long T = B;
for ( i = 1; i <= A[0] || T; ++i )
{
A[i] = ( T += A[i] ) % 10;
T /= 10;
}
A[0] = i-1;
}
long long modulo( BigInteger A, long long B )
{
long long i, T = 0;
for ( i = A[0]; i; --i )
T = ( T * 10 + A[i] ) % B;
return T;
}
void afis( BigInteger a )
{
ofstream g("next.out");
for ( long long i = a[0]; i >= 1; i-- )
g << a[i] ;
g << "\n";
g.close();
}
int main()
{
read();
init();
long long R = modulo( N, D );
if ( R )
aduna( N, D - R );
afis( N );
return 0;
}