Pagini recente » Cod sursa (job #2851312) | Cod sursa (job #1756568) | Cod sursa (job #2261630) | Cod sursa (job #2094678) | Cod sursa (job #1278853)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("next.in");
ofstream out("next.out");
const int MAX_CF = 1000000001;
const int baza = 10;
vector <int> x;
long long D;
long long hn_mod( vector<int> &x, long long n ) {
long long r= 0;
for( int i= (int)x.size()-1; i>=0; --i ) {
r= r*10+(long long)x[i];
r%= n;
}
return r;
}
void hn_add( vector<int> &x, long long n ) {
int t= 0;
for( int i= 0; t!=0 || n!=0; ++i, n/= 10 ) {
if( i == (int)x.size() ) x.push_back(0);
int c= (int)(n%10);
x[i]+= c+t;
if( x[i] >= baza ) {
x[i]-= baza;
t= 1;
}
else {
t= 0;
}
}
}
void afis( vector <int> &x ) {
for( int i= (int)x.size()-1; i>=0; --i ) out << x[i];
}
int main() {
char c;
in.get(c);
while( c != '\n' ) {
x.push_back( c-'0' );
in.get(c);
}
in >> D;
reverse( x.begin(), x.end() );
/// Rezolva
long long mod= hn_mod( x, D );
mod= (D-mod) % D;
hn_add( x, mod );
afis( x ); out << '\n';
return 0;
}