import Control.Arrow
cross ((ax, ay), (bx, by), (cx, cy)) =
(bx - ax) * (cy - ay) - (cx - ax) * (by - ay)
task
= (/ 2) . sum . map (abs . cross
) . triangulate
main
= print $ task
[(0, 0), (0, 1), (1, 1), (2, 0)]
aW1wb3J0IENvbnRyb2wuQXJyb3cKCmNyb3NzICgoYXgsIGF5KSwgKGJ4LCBieSksIChjeCwgY3kpKSA9IAogICAgKGJ4IC0gYXgpICogKGN5IC0gYXkpIC0gKGN4IC0gYXgpICogKGJ5IC0gYXkpCiAgICAKZ3JvdXBJblBhaXJzIChhOmI6eHMpID0gc2NhbmwgKGN1cnJ5ICQgZmlyc3Qgc25kKSAoYSwgYikgeHMKdHJpYW5ndWxhdGUgPSB1bmN1cnJ5IChtYXAgLiAodW5jdXJyeSAuICgsLCkpKSAuIChoZWFkICYmJiBncm91cEluUGFpcnMgLiB0YWlsKQp0YXNrID0gKC8gMikgLiBzdW0gLiBtYXAgKGFicyAuIGNyb3NzKSAuIHRyaWFuZ3VsYXRlCgptYWluID0gcHJpbnQgJCB0YXNrIFsoMCwgMCksICgwLCAxKSwgKDEsIDEpLCAoMiwgMCldCg==