Pagini recente » Cod sursa (job #981067) | Cod sursa (job #1356131) | Cod sursa (job #474161) | Cod sursa (job #405455) | Cod sursa (job #3250906)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int r, d;
static inline int exp(int x,int y)
{
int rez = 0;
if (x == 0)return 0;
int cy = y;
while(x >= cy){
rez += x / cy;
cy *= y;
}
return rez;
}
int main()
{
f >> r >> d;
int rez = 0;
int nr;
if (r % 2 == 1)nr = (r + 1) / 2;
else nr = r / 2 + 1;
if (r == 0){
g << 0;
return 0;
}
for (int i = 0;i < nr;i++){
if (d != 6){
if (exp(r,d) - exp((r-i),d) - exp(i,d) > 0)rez++;
}
else if (d == 6){
int ceva1 = exp(r,d);
int ceva2 = exp(r-i,2);
int ceva22 = exp(r-i,3);
int ceva3 = exp(i,2);
int ceva33 = exp(i,3);
int exp6 = min(ceva2+ceva3,ceva33+ceva22);
if (ceva1 - exp6 > 0)rez++;
}
//cout << exp(r,d) << " " << exp((r-i),d) << " " << exp(i,d) << '\n';
}
if (r % 2 == 1)g << rez * 2;
else{
if (rez > 0)g << rez * 2 - 1;
else g << 0;
}
}