Pagini recente » Cod sursa (job #3342299) | Cod sursa (job #904458) | Cod sursa (job #2670596) | Cod sursa (job #978394) | Cod sursa (job #3350786)
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
const int DMAX = 6;
bool prim[DMAX + 1];
inline void Init()
{
prim[2] = prim[3] = prim[5] = 1;
}
int Exp(int n, int p)
{
if(prim[p])
{
int t = p, exp = 0;
while(t <= n)
{
exp += n / t;
t *= p;
}
return exp;
}
if(p == 4)
return (Exp(n, 2) >> 1);
}
bool Comb(int n, int k, int p)
{
if(p == 6)
for(int i = 2; i <= 3; i++)
if(Exp(n, i) <= (Exp(k, i) + Exp(n - k, i)))
return false;
return Exp(n, p) > (Exp(k, p) + Exp(n - k, p));
}
int main()
{
Init();
int R, D, cnt = 0;
f >> R >> D;
for(int i = 0; i <= R; i++)
if(Comb(R, i, D) > 0)
cnt++;
g << cnt << '\n';
f.close();
g.close();
return 0;
}