from itertools import combinations
def max_area_rectangle(points):
n = len(points)
max_area = 0
max_rectangle = None
for p1, p2, p3, p4 in combinations(points, 4):
x_values = {p1[0], p2[0], p3[0], p4[0]}
y_values = {p1[1], p2[1], p3[1], p4[1]}
if len(x_values) == 2 and len(y_values) == 2:
x1, x2 = sorted(x_values)
y1, y2 = sorted(y_values)
area = (x2 - x1) * (y2 - y1)
if area > max_area:
max_area = area
max_rectangle = (p1, p2, p3, p4)
return max_area, max_rectangle
points = [(1, 1), (2, 3), (4, 4), (5, 2), (1, 4), (4, 1)]
print(max_area_rectangle(points))
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvbWJpbmF0aW9ucwoKZGVmIG1heF9hcmVhX3JlY3RhbmdsZShwb2ludHMpOgogICAgbiA9IGxlbihwb2ludHMpCiAgICBtYXhfYXJlYSA9IDAKICAgIG1heF9yZWN0YW5nbGUgPSBOb25lCgogICAgZm9yIHAxLCBwMiwgcDMsIHA0IGluIGNvbWJpbmF0aW9ucyhwb2ludHMsIDQpOgogICAgICAgIHhfdmFsdWVzID0ge3AxWzBdLCBwMlswXSwgcDNbMF0sIHA0WzBdfQogICAgICAgIHlfdmFsdWVzID0ge3AxWzFdLCBwMlsxXSwgcDNbMV0sIHA0WzFdfQogICAgICAgIGlmIGxlbih4X3ZhbHVlcykgPT0gMiBhbmQgbGVuKHlfdmFsdWVzKSA9PSAyOgogICAgICAgICAgICB4MSwgeDIgPSBzb3J0ZWQoeF92YWx1ZXMpCiAgICAgICAgICAgIHkxLCB5MiA9IHNvcnRlZCh5X3ZhbHVlcykKICAgICAgICAgICAgYXJlYSA9ICh4MiAtIHgxKSAqICh5MiAtIHkxKQogICAgICAgICAgICBpZiBhcmVhID4gbWF4X2FyZWE6CiAgICAgICAgICAgICAgICBtYXhfYXJlYSA9IGFyZWEKICAgICAgICAgICAgICAgIG1heF9yZWN0YW5nbGUgPSAocDEsIHAyLCBwMywgcDQpCgogICAgcmV0dXJuIG1heF9hcmVhLCBtYXhfcmVjdGFuZ2xlCgpwb2ludHMgPSBbKDEsIDEpLCAoMiwgMyksICg0LCA0KSwgKDUsIDIpLCAoMSwgNCksICg0LCAxKV0KcHJpbnQobWF4X2FyZWFfcmVjdGFuZ2xlKHBvaW50cykpCg==
cG9pbnRzID0gWygxLCAxKSwgKDIsIDMpLCAoNCwgNCksICg1LCAyKSwgKDEsIDQpLCAoNCwgMSldCg==
points = [(1, 1), (2, 3), (4, 4), (5, 2), (1, 4), (4, 1)]