aboutsummaryrefslogtreecommitdiff
path: root/challenge-152/abigail/lua
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-02-17 01:16:07 +0000
committerdrbaggy <js5@sanger.ac.uk>2022-02-17 01:16:07 +0000
commit32bf1349de3436301ed753dc24ae0652b3cded26 (patch)
tree40a8ce975c9dba0aaef8f8d8e8475a4ccfcde75d /challenge-152/abigail/lua
parenta49da719c0b0a3580168798f7785eb814378e226 (diff)
parent82393908f2bf4dd4f5a35f2b6b2c7892611fec9a (diff)
downloadperlweeklychallenge-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.lua30
-rw-r--r--challenge-152/abigail/lua/ch-2.lua29
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