Lang:Python2
Edit12345678910def dfs(h, x, y, x1, y1, x2, y2):if h <= 0: return 0l = 0 if h == 1 else 3 * (1 << h - 2) - 1X1, Y1, X2, Y2 = x, y - l, x + l, y + lif x1 <= X1 <= X2 <= x2 and y1 <= Y1 <= Y2 <= y2: return (1 << h) - 1if (X1 - x2) * (X2 - x1) > 0 or (Y1 - y2) * (Y2 - y1) > 0: return 0d = 3 * (1 << h - 3) if h >= 3 else 2return (x1 <= x <= x2 and y1 <= y <= y2) + dfs(h - 1, x + d, y - d, x1, y1, x2, y2) + dfs(h - 1, x + d, y + d, x1, y1, x2, y2)n, m = map(int, raw_input().split())for i in range(m): print dfs(n, 0, 0, *map(int, raw_input().split()))