#include <bits/stdc++.h>
using namespace std;
template <typename T>
void chmin(T &x, const T &y) {
  if (x > y) x = y;
}
template <typename T>
void chmax(T &x, const T &y) {
  if (x < y) x = y;
}
inline int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - 48;
    ch = getchar();
  }
  return x * f;
}
const int N = 2e5 + 10;
int n, m, k;
double ans, fac[N];
inline double C(int n, int m) { return fac[n] - fac[m] - fac[n - m]; }
int main() {
  n = read(), m = read(), k = read();
  if (n + k < m)
    ans = 0;
  else if (k >= m)
    ans = 1;
  else {
    fac[0] = 0;
    for (int i = 1; i <= n + m; i++) fac[i] = fac[i - 1] + log(i * 1.0);
    ans = 1 - exp(C(n + m, n + k + 1) - C(n + m, n));
  }
  printf("%.6lf", ans);
  return 0;
  ;
}
