diff options
| -rw-r--r-- | challenge-334/hvukman/lua/334_p1.lua | 24 | ||||
| -rw-r--r-- | challenge-334/hvukman/lua/334_p2.lua | 67 |
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 |
