local mfl, mce = math.floor, math.ceil local mmi, mma = math.min, math.max local ga = 0 local gx = 0 local function triplediv_solve(use) local ans = use * gx local base = mfl(ga / use) local rem = ga % use ans = ans + base * base * (use - rem) + (base + 1) * (base + 1) * rem return ans end local function triplediv(xmin, xmax, rep) local func = triplediv_solve local left_v, right_v = func(xmin), func(xmax) while 10 < xmax - xmin do local xmid1, xmid2 = mfl((xmin * 2 + xmax) / 3), mfl((xmin + xmax * 2) / 3) local mid_v1, mid_v2 = func(xmid1), func(xmid2) if left_v > mid_v1 then if mid_v2 > right_v then xmin = xmid2 left_v = mid_v2 elseif mid_v1 > mid_v2 then xmin = xmid1 left_v = mid_v1 else xmax = xmid2 right_v = mid_v2 end else if mid_v2 < right_v then xmax = xmid1 right_v = mid_v1 elseif mid_v1 < mid_v2 then xmin = xmid1 left_v = mid_v1 else xmax = xmid2 right_v = mid_v2 end end end local cand, candx = func(xmin), xmin for i = xmin + 1, xmax do local z = func(i) if z < cand then cand, candx = z, i end end return candx end local function solve() local x, a = io.read("*n", "*n") ga, gx = a, x -- for i = 1, a do -- print(i, triplediv_solve(i)) -- end -- os.exit() local xcnt = triplediv(1, a, 40) print(triplediv_solve(xcnt)) end local q = io.read("*n") for iq = 1, q do solve() end