Pagini recente » Cod sursa (job #3150341) | Cod sursa (job #1584071) | Cod sursa (job #281143) | Cod sursa (job #477320) | Cod sursa (job #760056)
Cod sursa(job #760056)
#include <cassert>
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
char v[1000005];
int a[1000005],n;
int main(){
long long D;
ifstream fin("next.in");
ofstream fout("next.out");
fin.getline(v , sizeof( v ) );
fin >> D;
assert(D >= 2LL);
n = 0;
for(int i=strlen(v)-1 ; i>=0 ; --i){
assert(v[i]>='0' && v[i] <= '9');
a[++n] = v[i] - '0';
}
a[0] = n;
while( a[a[0]] == 0 && a[0] > 1 )
a[0] -- ;
long long t = 0;
for(int i = a[0] ; i ; --i)
t = (10 * t + a[i]) % D;
if( t ){
D = (D - t);
cout << D << endl;
t = 0 ;
int i = 1;
while ( D ){
if( i > a[0] )
a[ ++ a[0] ] = 0;
a[i] += D % 10 + t;
t = a[i] / 10;
a[i] %= 10;
D /= 10;
i ++ ;
}
if( t ){
if( i > a[0] )
a[ ++a[0] ] = 0;
assert(0);
a[i] += t;
}
while( a[a[0]] == 0 && a[0] > 1 )
a[0] --;
}
for ( int i = a[0] ; i ; --i )
fout << a[i];
//fout << endl;
return 0;
}