Pagini recente » Cod sursa (job #2459367) | Cod sursa (job #3268231) | Cod sursa (job #332838) | Cod sursa (job #1908493) | Cod sursa (job #1425282)
#include <fstream>
#include <vector>
#include <string>
using namespace std;
#define Nmax 1000002
ifstream fin ( "next.in" );
ofstream fout ( "next.out" );
int A[Nmax], B[Nmax];
string S;
long long Modulo ( int A[], int Mod ){
long long rez = 0;
for ( int i = A[0]; i >= 1; --i )
rez = ( rez * 10 + A[i] ) % Mod;
return rez;
}
void Adun ( int A[], int B[] ){
int T = 0;
A[0] = max ( A[0], B[0] );
for ( int i = 1; i <= A[0]; ++i ){
A[i] += B[i] + T;
T = A[i] / 10;
A[i] %= 10;
}
if (T)
A[++A[0]] = T;
}
int main(){
vector < int > :: iterator it;
long long D;
fin >> S >> D;
for ( int i = S.size() - 1; i >= 0; --i )
A[++A[0]] = S[i] - '0';
S.clear();
long long rest = Modulo ( A, D );
if ( rest ){
D -= rest;
while ( D ){
B[++B[0]] = D%10;
D /= 10;
}
Adun ( A, B );
}
for ( int i = A[0]; i >= 1; --i )
fout << A[i];
return 0;
}