Pagini recente » Cod sursa (job #294089) | Rating Pascalau Cristian (Cyupi) | Istoria paginii runda/9buni_la_info_simoji2022.1 | Cod sursa (job #500566) | Cod sursa (job #1896469)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
long long d, r, m;
int a[1000005];
char n[1000005];
void div(){
r = 0;
for( int i = a[0]; i > 0; i-- ){
r = r * 10 + a[i];
a[i] = r / d;
r %= d;
}
while( a[a[0]] == 0 && a[0] > 1 ) a[0]--;
}
void adunare(){
int t = 0;
a[1]++;
t = a[1] / 10;
a[1] %= 10;
for( int i = 2; i <= a[0]; i++ ){
a[i] = a[i] + t;
t = a[i] / 10;
a[i] = a[i] % 10;
}
while( t != 0 ){
a[++a[0]] = t % 10;
t /= 10;
}
}
void mult(){
int t = 0;
for( int i = 1; i <= a[0]; i++ ){
a[i] = a[i] * d + t;
t = a[i] / 10;
a[i] = a[i] % 10;
}
while( t != 0 ){
a[++a[0]] = t % 10;
t /= 10;
}
}
int main(){
fin >> n >> d;
m = strlen( n );
for( int i = 0; i < m; i++ ){
a[i + 1] = ( n[m - i - 1] - '0' );
}
a[0] = m;
div();
if( r != 0 ){
adunare();
}
mult();
for( int i = a[0]; i >= 1; i-- ){
fout << a[i];
}
return 0;
}