function readline() local x1 = io.read("*n") io.read(1) -- "," local y1 = io.read("*n") io.read(4) -- " -> " local x2 = io.read("*n") io.read(1) -- "," local y2 = io.read("*n") io.read("*l") -- "...\n" return x1, y1, x2, y2 end function mark(field, x, y, count, dx, dy) local i = 0 while i <= count do local row = field[x+i*dx] or {} row[y+i*dy] = (row[y+i*dy] or 0) + 1 field[x+i*dx] = row i = i + 1 end end io.input(arg[3]) local x1, y1, x2, y2 = readline() local field = {} while x1 ~= nil do local x, y, count, dx, dy if x1 == x2 then mark(field, x1, math.min(y1, y2), math.abs(y1 - y2), 0, 1) elseif y1 == y2 then mark(field, math.min(x1, x2), y1, math.abs(x2 - x1), 1, 0) elseif x1 + y1 == x2 + y2 then mark(field, math.min(x1, x2), math.max(y1, y2), math.abs(x1 - x2), 1, -1) else mark(field, math.min(x1, x2), math.min(y1, y2), math.abs(x1 - x2), 1, 1) end x1, y1, x2, y2 = readline() end local count = 0 for r, row in pairs(field) do for c, col in pairs(row) do if col >= 2 then count = count + 1 end end end print(count)