Submission #1205549

#TimeUsernameProblemLanguageResultExecution timeMemory
1205549ofozRed-blue table (IZhO19_stones)Pypy 3
In queue
0 ms0 KiB
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()