aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-334/hvukman/lua/334_p1.lua24
-rw-r--r--challenge-334/hvukman/lua/334_p2.lua67
2 files changed, 91 insertions, 0 deletions
diff --git a/challenge-334/hvukman/lua/334_p1.lua b/challenge-334/hvukman/lua/334_p1.lua
new file mode 100644
index 0000000000..a12f1f6044
--- /dev/null
+++ b/challenge-334/hvukman/lua/334_p1.lua
@@ -0,0 +1,24 @@
+
+local ints = {-2,0,3,-5,2,-1}
+local point = {0,2}
+
+
+
+function Sum(x)
+ local points = x[1]
+ local index = x[2]
+ local sum = 0
+
+ for i= index[1]+1,index[2]+1 do
+ sum = sum + points[i]
+ end
+ print(sum)
+
+end
+
+local input = { {{-2,0,3,-5,2,-1},{0,2}}, {{1, -2, 3, -4, 5}, {1,3}}, {{1, 0, 2, -1, 3},{3,4}}
+, {{-5, 4, -3, 2, -1, 0},{0,3}}, {{-1, 0, 2, -3, -2, 1},{0,2}} }
+
+for _,v in ipairs(input) do
+ Sum(v)
+end
diff --git a/challenge-334/hvukman/lua/334_p2.lua b/challenge-334/hvukman/lua/334_p2.lua
new file mode 100644
index 0000000000..4bec919b4f
--- /dev/null
+++ b/challenge-334/hvukman/lua/334_p2.lua
@@ -0,0 +1,67 @@
+local input = { { {1,2},{3,1},{2,4},{2,3} },
+ {{3, 4}, {2, 3}, {1, 5}, {2, 5}},
+ { {2,2},{3,3},{4,4}},
+ {{0,1}, {1,0}, {0,2}, {2,0}},
+ {{5,6}, {6,5}, {5,4}, {4,5}}
+ }
+local point = {{3,4},{2,5},{1,1},{0,0},{5,5}}
+
+
+
+function Validpoint(X,Y)
+
+ local valid = { } -- put valid points in table
+ for i,v in ipairs(X) do
+ if v[1]==Y[1] then
+ local point_ = {}
+ point_["point"] = v
+ point_["idx"] = i
+ table.insert(valid,point_)
+ elseif v[2]==Y[2] then
+ local point_ = {}
+ point_["point"] = v
+ point_["idx"] = i
+ table.insert(valid,point_)
+ end
+ end
+
+ if #valid==0 then
+ print("no point shared: ", -1)
+ else
+ local closest = {}
+ for idx,m in ipairs(valid) do
+
+
+ local min = 0
+
+ local input_p = m["point"]
+
+ for i=1,2 do
+ min = min + math.abs( input_p[i]-Y[i])
+ end
+
+ local toinsert = {}
+ toinsert["min"] = min
+ toinsert["idx"] = m["idx"]
+ table.insert( closest, toinsert )
+
+ end
+
+ table.sort (closest, function (k1, k2) return k1.min < k2.min end ) -- sorting function for minimum value
+ local first = closest[1]["idx"]
+
+ print("Closest valid point with index: ", first-1) -- subtract for showing index
+
+ if(X[first]) then
+ for _,ii in ipairs(X[first]) do
+ io.write(ii," ")
+ end
+ end
+ io.write("\n")
+ end
+
+end
+
+for i=1,#input do
+ Validpoint(input[i],point[i])
+end