diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-02-17 01:16:07 +0000 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-02-17 01:16:07 +0000 |
| commit | 32bf1349de3436301ed753dc24ae0652b3cded26 (patch) | |
| tree | 40a8ce975c9dba0aaef8f8d8e8475a4ccfcde75d /challenge-152/abigail/lua | |
| parent | a49da719c0b0a3580168798f7785eb814378e226 (diff) | |
| parent | 82393908f2bf4dd4f5a35f2b6b2c7892611fec9a (diff) | |
| download | perlweeklychallenge-club-32bf1349de3436301ed753dc24ae0652b3cded26.tar.gz perlweeklychallenge-club-32bf1349de3436301ed753dc24ae0652b3cded26.tar.bz2 perlweeklychallenge-club-32bf1349de3436301ed753dc24ae0652b3cded26.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-152/abigail/lua')
| -rw-r--r-- | challenge-152/abigail/lua/ch-1.lua | 30 | ||||
| -rw-r--r-- | challenge-152/abigail/lua/ch-2.lua | 29 |
2 files changed, 59 insertions, 0 deletions
diff --git a/challenge-152/abigail/lua/ch-1.lua b/challenge-152/abigail/lua/ch-1.lua new file mode 100644 index 0000000000..eb0579ee47 --- /dev/null +++ b/challenge-152/abigail/lua/ch-1.lua @@ -0,0 +1,30 @@ +#!/opt/local/bin/lua + +-- +-- See https://theweeklychallenge.org/blog/perl-weekly-challenge-152 +-- + +-- +-- Run as: lua ch-1.lua < input-file +-- + +for line in io . lines () do + local minsum = 0 + local n = 1 + local m = n + local min = 0 + for num in line : gmatch ("-?[0-9]+") do + num = tonumber (num) + if (m == n) or (num < min) then + min = num + end + m = m - 1 + if m == 0 then + minsum = minsum + min + n = n + 1 + m = n + min = 0 + end + end + print (minsum) +end diff --git a/challenge-152/abigail/lua/ch-2.lua b/challenge-152/abigail/lua/ch-2.lua new file mode 100644 index 0000000000..d7a0f6f594 --- /dev/null +++ b/challenge-152/abigail/lua/ch-2.lua @@ -0,0 +1,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 |
