#include #include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max() / 32 * 15 + 208; int main() { int f, n, k; cin >> f >> n >> k; k = n-k+1; double ans = 0; vector logfact(n+1); for (int i = 0; i < n; ++i) { logfact[i+1] = logfact[i] + log(i+1); } auto F = [&](double i, double j) { if(j == 0) return 0.0; if(j == f) return 1.0; return exp(logfact[n]-logfact[i]-logfact[n-i] + i * log(1.0*j/f) + (n-i) * log(1.0 * (f-j)/f)); }; vector dp(f+1, 1); for (int j = 0; j < f; ++j) { double a = 0; for (int i = k; i <= n; ++i) { a += F(i, j); } dp[j] = a; } for (int j = 0; j < f; ++j) { ans += (dp[j+1]-dp[j])*(j+1); } printf("%.10lf\n", ans); return 0; }