aboutsummaryrefslogtreecommitdiff
path: root/challenge-337/roger-bell-west/lua/ch-2.lua
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-337/roger-bell-west/lua/ch-2.lua')
-rwxr-xr-xchallenge-337/roger-bell-west/lua/ch-2.lua65
1 files changed, 65 insertions, 0 deletions
diff --git a/challenge-337/roger-bell-west/lua/ch-2.lua b/challenge-337/roger-bell-west/lua/ch-2.lua
new file mode 100755
index 0000000000..946d52e7e8
--- /dev/null
+++ b/challenge-337/roger-bell-west/lua/ch-2.lua
@@ -0,0 +1,65 @@
+#! /usr/bin/lua
+
+function oddmatrix(rows, cols, points)
+ local rm = {}
+ local cm = {}
+ for _, p in ipairs(points) do
+ if rm[p[1]] == nil then
+ rm[p[1]] = true
+ else
+ rm[p[1]] = nil
+ end
+ if cm[p[2]] == nil then
+ cm[p[2]] = true
+ else
+ cm[p[2]] = nil
+ end
+ end
+ local cml = length(cm)
+ local rml = length(rm)
+ return rml * (cols - cml) + cml * (rows -rml)
+end
+
+function length(t)
+ local l = 0
+ for k, v in pairs(t) do
+ l = l + 1
+ end
+ return l
+end
+
+if oddmatrix(2, 3, {{0, 1}, {1, 1}}) == 6 then
+ io.write("Pass")
+else
+ io.write("FAIL")
+end
+io.write(" ")
+
+if oddmatrix(2, 2, {{1, 1}, {0, 0}}) == 0 then
+ io.write("Pass")
+else
+ io.write("FAIL")
+end
+io.write(" ")
+
+if oddmatrix(3, 3, {{0, 0}, {1, 2}, {2, 1}}) == 0 then
+ io.write("Pass")
+else
+ io.write("FAIL")
+end
+io.write(" ")
+
+if oddmatrix(1, 5, {{0, 2}, {0, 4}}) == 2 then
+ io.write("Pass")
+else
+ io.write("FAIL")
+end
+io.write(" ")
+
+if oddmatrix(4, 2, {{1, 0}, {3, 1}, {2, 0}, {0, 1}}) == 8 then
+ io.write("Pass")
+else
+ io.write("FAIL")
+end
+print("")
+