aboutsummaryrefslogtreecommitdiff
path: root/challenge-152/abigail/lua/ch-2.lua
blob: d7a0f6f5948550566e0787b35496cc0ce8d1099e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/opt/local/bin/lua

--
-- See https://theweeklychallenge.org/blog/perl-weekly-challenge-152
--

--
-- Run as: lua ch-2.lua < input-file
--

local i_pat = "(-?%d+)"
local pattern = i_pat
for i = 2, 8 do
    pattern = pattern .. "%s+" .. i_pat
end

for line in io . lines () do
    local _, _, a_x1, a_y1, a_x2, a_y2, b_x1, b_y1, b_x2, b_y2 =
               line : find (pattern)
    print (               (math . max (a_x1, a_x2) - math . min (a_x1, a_x2))  *
                          (math . max (a_y1, a_y2) - math . min (a_y1, a_y2))  +
                          (math . max (b_x1, b_x2) - math . min (b_x1, b_x2))  *
                          (math . max (b_y1, b_y2) - math . min (b_y1, b_y2))  -
math . max (0, math . min (math . max (a_x1, a_x2),  math . max (b_x1, b_x2))  -
               math . max (math . min (a_x1, a_x2),  math . min (b_x1, b_x2))) *
math . max (0, math . min (math . max (a_y1, a_y2),  math . max (b_y1, b_y2))  -
               math . max (math . min (a_y1, a_y2),  math . min (b_y1, b_y2))))

end