Pagini recente » Borderou de evaluare (job #1794301) | Borderou de evaluare (job #984003) | Borderou de evaluare (job #711580) | Borderou de evaluare (job #113445) | Cod sursa (job #1051205)
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
typedef long long i64;
const int base= 10;
const int nmax= 1000000;
i64 d;
char s[nmax+1];
int v[nmax+1];
int main( ) {
fin>>s>>d;
int n= strlen(s);
for ( int i= 1; i<=n; ++i ) {
v[n-i+1]= (int)s[i-1]-'0';
}
int m= 0;
for ( int i= n; i>0; --i ) {
m= (m*base+v[i])%d;
}
if ( m>0 ) {
m= d-m;
}
for ( int i= 1; m>0; ++i, m/= base ) {
if ( i>n ) {
++n;
}
v[i]= v[i]+m%base;
}
for ( int i= 1; i<=n || v[i]>0; ++i ) {
if ( i>n ) {
++n;
}
if ( v[i]>=base ) {
v[i]%= base;
++v[i+1];
}
}
for ( int i= n; i>0; --i ) {
fout<<v[i];
}
fout<<"\n";
return 0;
}