#include <bits/stdc++.h>
using namespace std;
int n, m, r, k;
priority_queue<pair<long long, pair<int, int> > > qu;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m >> r >> k;
  int u = (m + 1) / 2;
  long long v;
  for (int i = 1; i <= n; ++i) {
    v = 1ll * (min(i, n - r + 1) - max(1, i - r + 1) + 1) *
        (min(u, m - r + 1) - max(1, u - r + 1) + 1);
    qu.push(make_pair(v, make_pair(i, u)));
  }
  pair<int, int> x;
  double res = 0;
  while (k) {
    res += qu.top().first;
    x = qu.top().second;
    qu.pop();
    if (x.second <= u && x.second > 1) {
      v = 1ll * (min(x.first, n - r + 1) - max(1, x.first - r + 1) + 1) *
          (min(x.second - 1, m - r + 1) - max(1, x.second - r) + 1);
      qu.push(make_pair(v, make_pair(x.first, x.second - 1)));
    }
    if (x.second >= u && x.second < m) {
      v = 1ll * (min(x.first, n - r + 1) - max(1, x.first - r + 1) + 1) *
          (min(x.second + 1, m - r + 1) - max(1, x.second - r + 2) + 1);
      qu.push(make_pair(v, make_pair(x.first, x.second + 1)));
    }
    k--;
  }
  printf("%0.10f", res / double(1ll * (n - r + 1) * (m - r + 1)));
}
