import queue
q = queue.PriorityQueue()
(n, m, r, k) = map(int, input().split())
a = min(r, n - r + 1)
b = min(r, m - r + 1)
u = n - 2 * a + 2
v = m - 2 * b + 2
for i in range(1, a + 1):
q.put((-b * i, i))
t = 0
while k:
(s, i) = q.get()
q.put((s + i, i))
d = min((u if i == a else 2) * (v if s == -b * i else 2), k)
t -= s * d
k -= d
print(t / (n - r + 1) / (m - r + 1))
452A - Eevee | 1647B - Madoka and the Elegant Gift |
1408A - Circle Coloring | 766B - Mahmoud and a Triangle |
1618C - Paint the Array | 469A - I Wanna Be the Guy |
1294A - Collecting Coins | 1227A - Math Problem |
349A - Cinema Line | 47A - Triangular numbers |
1516B - AGAGA XOOORRR | 1515A - Phoenix and Gold |
1515B - Phoenix and Puzzle | 155A - I_love_username |
49A - Sleuth | 1541A - Pretty Permutations |
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |
770A - New Password | 1646B - Quality vs Quantity |
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |