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
if m <= 2:
grid = [[1] * m for _ in range(n)]
print(n)
elif n <= 2:
grid = [[0] * m for _ in range(n)]
print(m)
else:
print(n + m - 2)
for i, row in enumerate(grid):
for c in row:
print(("-" if not c else "+"), end = "")
print()
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
if m <= 3:
grid = [[1] * m for _ in range(n)]
print(n)
elif n <= 3:
grid = [[0] * m for _ in range(n)]
print(m)
else:
print(n + m - 3)
for i, row in enumerate(grid):
for c in row:
print(("-" if not c else "+"), end = "")
print()
def solve():
n, m = map(int, input().split(" "))
if n & 1: solveOdd(n, m)
else: solveEven(n, m)
"""
4 4
- + + +
+ - + +
- + + +
- - - -
6 6
- - + + + +
+ + - - + +
- - + + + +
+ + - - + +
- - + + + +
- - - - - -
M + N - 3
"""
for _ in range(int(input())): solve()
Compilation message (stdout)
Compiling 'stones.py'...
=======
adding: __main__.pyc (deflated 59%)
=======
# | 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... |