Pagini recente » Cod sursa (job #2959782) | Calibrare limite de timp | Cod sursa (job #1013133) | Cod sursa (job #272362) | Cod sursa (job #1425296)
#include <fstream>
#include <cstring>
using namespace std;
#define Nmax 10000005
ifstream fin ( "next.in" );
ofstream fout ( "next.out" );
int A[Nmax], B[Nmax];
char S[Nmax];
long long Modulo ( int A[], int Mod ){
long long rez = 0;
for ( int i = A[0]; i > 0; i-- )
rez = ( rez * 10 + A[i] ) % Mod;
return rez;
}
void Adun ( int A[], long long B ){
int i, t = 0;
for (i = 1; i <= A[0] || B || t; i++, t /= 10, B /= 10)
A[i] = (t += A[i] + B % 10) % 10;
A[0] = i - 1;
}
int main(){
long long D;
fin >> S;
fin >> D;
int lg = strlen ( S );
for ( int i = lg - 1; i >= 0; --i ){
int cif = S[i] - '0';
if ( cif >= 0 && cif <= 9 )
A[++A[0]] = cif;
}
long long rest = ( D - Modulo ( A, D ) ) % D;
Adun ( A, rest );
for ( int i = A[0]; i >= 1; --i )
fout << A[i];
return 0;
}