Pagini recente » Cod sursa (job #128579) | Cod sursa (job #2333340) | Cod sursa (job #1828534) | Cod sursa (job #3311016) | Cod sursa (job #3350791)
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int Exp(int n, int p)
{
int t = p, exp = 0;
while(t <= n)
{
exp += n / t;
t *= p;
}
return exp;
}
bool Comb(int n, int k, int p)
{
if(p == 6)
return Exp(n, 2) - (Exp(k, 2) + Exp(n - k, 2)) > 0 &&
Exp(n, 3) - (Exp(k, 3) + Exp(n - k, 3)) > 0;
if(p == 4)
return Exp(n, 2) - (Exp(k, 2) + Exp(n - k, 2)) > 1;
return Exp(n, p) - (Exp(k, p) + Exp(n - k, p)) > 0;
}
int main()
{
int R, D, cnt = 0;
f >> R >> D;
for(int i = 0; i <= (R >> 1) - !(R & 1); i++)
if(Comb(R, i, D))
cnt += 2;
if(!(R & 1) && Comb(R, R >> 1, D))
cnt++;
g << cnt << '\n';
f.close();
g.close();
return 0;
}