m天做n题。
x1 + x2 + ... + xm = n;(xi >= 0)
y1 + y2 + ... + ym = m + n(yi >= 1)
即C(m + n - 1,m - 1) = C(m + n - 1,n)
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll solve(ll n,ll p)
{
ll ans = 0,t = p;
while (t <= n) {
ans += n / t;
t *= p;
}
return ans;
}
int main()
{
ll m,n,k;
while (scanf("%lld%lld%lld",&m,&n,&k) != EOF) {
n -= m * k;
if (n < 0) {
printf("0\n");
}
else {
ll cnt2 = 0,cnt5 = 0;
cnt2 = solve(m + n - 1, 2) - solve(n, 2) - solve(m - 1, 2);//m,n为int,相加会超int
cnt5 = solve(m + n - 1, 5) - solve(n, 5) - solve(m - 1, 5);
printf("%lld\n",min(cnt2,cnt5));
}
}
return 0;
}