from collections import deque
from sys import setrecursionlimit
from math import ceil
def solveOdd(n: int, m: int):
grid = [[1] * m for _ in range(n)]
for i in range(n-1, n):
for j in range(m):
grid[i][j] = 0
for i in range(n-1):
for j in range(m-1):
if (i + j) & 1: grid[i][j] = 1
else: grid[i][j] = 0
res = n+m-2
if n >= m and m <= 2:
grid = [[1] * m for _ in range(n)]
res = n
elif m >= n and n <= 2:
grid = [[0] * m for _ in range(n)]
res = m
return res, grid
def solveEven(n: int, m: int):
grid = [[1] * m for _ in range(n)]
for i in range(n-3, n):
for j in range(m):
grid[i][j] = 0
i = 0
j = 0
cnt = 0
while i < n-3:
grid[i][j] = 0
cnt += 1
j += 1
if cnt == m//2 - 1:
cnt = 0
i += 1
if j == m:
j = 0
i += 1
cnt = 0
return (n + m - 3, grid)
prev = [-1, -1]
def solve():
global prev
n, m = map(int, input().split(" "))
if n & 1: res, grid = solveOdd(n, m)
else: res, grid = solveEven(n, m)
print(res)
for i, row in enumerate(grid):
for c in row:
print(("-" if not c else "+"), end = "")
print()
"""
45
45
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
-----------+++++++++++++
+++++++++++-----------++
++++++++++++++++++++++--
------------------------
------------------------
------------------------
"""
for _ in range(int(input())): solve()
Compilation message (stdout)
Compiling 'stones.py'...
=======
adding: __main__.pyc (deflated 53%)
=======
# | 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... |