from collections import deque
from sys import setrecursionlimit
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-1, n):
for j in range(m):
grid[i][j] = 0
d = m//2 - 1
for i in range(n-1):
for j in range(m-2):
mod = (j) % (2*d)
if mod < d: grid[i][j] = 1 if i % 2 == 0 else 0
else: grid[i][j] = 0 if i % 2 == 0 else 1
res = n+m-3
if n > m and m <= 3:
grid = [[1] * m for _ in range(n)]
res = n
elif m > n and n <= 3:
grid = [[0] * m for _ in range(n)]
res = m
return (res, 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()
"""
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
-----------+++++++++++++
+++++++++++-----------++
------------------------
"""
for _ in range(int(input())): solve()
Compilation message (stdout)
Compiling 'stones.py'...
=======
adding: __main__.pyc (deflated 58%)
=======
# | 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... |