from collections import deque
from sys import setrecursionlimit
import heapq
def score(grid):
n = len(grid)
m = len(grid[0])
res = 0
for i in range(n):
cnt = 0
for j in range(m):
cnt += (grid[i][j] == 1)
res += cnt > m//2
for j in range(m):
cnt = 0
for i in range(n):
cnt += (grid[i][j] == 0)
res += cnt > n//2
return res
def solve():
n, m = map(int, input().split(" "))
grid = [[1] * m for _ in range(n)]
q = []
for i in range(n): heapq.heappush(q, (0, i))
j = 0
cur = 0
res = n
while j < m:
cnt, i = heapq.heappop(q)
if cnt >= (m-1)//2: break
grid[i][j] = 0
heapq.heappush(q, (cnt+1, i))
cur += 1
if cur > n//2:
cur = 0
j += 1
res += 1
if (n & 1): d = 2
else: d = 3
if n >= m and n >= res:
grid = [[1] * m for _ in range(n)]
res = n
if m >= n and m >= res:
grid = [[0] * m for _ in range(n)]
res = m
print(res)
for row in grid:
for c in row:
print("+" if c else "-", end = "")
print()
"""
--+-++++
--+-++++
-+--++++
-+--++++
-+-+-+++
+--+-+++
+--+-+++
--------
"""
for _ in range(int(input())): solve()
Compilation message (stdout)
Compiling 'stones.py'...
=======
adding: __main__.pyc (deflated 46%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |