Pagini recente » Borderou de evaluare (job #2036842) | Cod sursa (job #1547684)
#include<fstream>
#include<string>
using namespace std;
const int base= 10, NMAX= 1000006;
ifstream in("next.in");
ofstream out("next.out");
int n[NMAX+1];
string s;
void adunare(long long x)
{
int minte= 0;
for( int i= 1; x>0 || minte!=0; ++i )
{
if( i>n[0] )
++n[0];
n[i]+= x%10+minte;
minte= n[i]/base;
n[i]%= base;
x/= 10;
}
}
int main()
{
long long rest, d;
in >> s >> d;
for( int i = (int)s.size() - 1; i>=0; --i )
{
++n[0];
n[n[0]]= s[i]-'0';
}
for( int i= n[0]; i>0; --i )
{
rest= (rest*10+n[i])%d;
}
rest= (d-rest)%d;
adunare(rest);
for( int i = n[ 0 ]; i>0; --i )
{
out << n[i];
}
out << '\n';
return 0;
}