#!/usr/bin/env luajit require("utils") local xmin, xmax, ymin, ymax = string.match(io.open(arg[3]):read("*a"), "target area: x=(.*)%.%.(.*), y=(.*)%.%.(.*)") xmin, xmax, ymin, ymax = tonumber(xmin), tonumber(xmax), tonumber(ymin), tonumber(ymax) local mindy = ymin local maxdy = 0 if ymax > 0 then maxdy = ymax end if ymin < 0 then if -ymin - 1 > maxdy then maxdy = -ymin - 1 end end local mindx = 0 while euler(mindx) < xmin do mindx = mindx + 1 end local maxdx = xmax local count = 0 for odx = mindx, maxdx do for ody = mindy, maxdy do local x, y, dx, dy = 0, 0, odx, ody while x <= xmax and y >= math.min(0, ymin) do x, y = x + dx, y + dy if xmin <= x and x <= xmax and ymin <= y and y <= ymax then count = count + 1 break end if dx > 0 then dx = dx - 1 end dy = dy - 1 end end end print(count)