Almost Ternary Matrix (Codeforces 1699B)
Tags: Others, matrices

You are given two even integers $$$n$$$ and $$$m$$$. Your task is to find any binary matrix $$$a$$$ with $$$n$$$ rows and $$$m$$$ columns where every cell $$$(i,j)$$$ has exactly two neighbours with a different value than $$$a_{i,j}$$$.Two cells in the matrix are considered neighbours if and only if they share a side. More formally, the neighbours of cell $$$(x,y)$$$ are: $$$(x-1,y)$$$, $$$(x,y+1)$$$, $$$(x+1,y)$$$ and $$$(x,y-1)$$$.It can be proven that under the given constraints, an answer always exists.

Input: Each test contains multiple test cases. The first line of input contains a single integer $$$t$$$ ($$$1 \le t \le 100$$$) — the number of test cases. The following lines contain the descriptions of the test cases.The only line of each test case contains two even integers $$$n$$$ and $$$m$$$ ($$$2 \le n,m \le 50$$$) — the height and width of the binary matrix, respectively.

Output: For each test case, print $$$n$$$ lines, each of which contains $$$m$$$ numbers, equal to $$$0$$$ or $$$1$$$ — any binary matrix which satisfies the constraints described in the statement.It can be proven that under the given constraints, an answer always exists.

Note: White means $$$0$$$, black means $$$1$$$. The binary matrix from the first test caseThe binary matrix from the second test caseThe binary matrix from the third test case 

Sample Inputs:
3
2 4
2 2
4 4

Sample Outputs:
1 0 0 1
0 1 1 0
1 0
0 1
1 0 1 0
0 0 1 1
1 1 0 0
0 1 0 1

Solution (Python):
t = int(input())
for _ in range(t):
    (n, m) = input().split(' ')
    (n, m) = (int(n), int(m))
    (s1, s2) = ('', '')
    for i in range(m):
        if i % 4 == 0 or i % 4 == 3:
            s1 = s1 + '1 '
            s2 = s2 + '0 '
        else:
            s1 = s1 + '0 '
            s2 = s2 + '1 '
    for i in range(n):
        if i % 4 == 0 or i % 4 == 3:
            print(s1)
        else:
            print(s2)

Solution (Python):
t = int(input())
while t > 0:
    t -= 1
    (n, m) = map(int, input().split())
    s1 = '1'
    while True:
        s1 += '0'
        if len(s1) == m:
            break
        s1 += '0'
        if len(s1) == m:
            break
        s1 += '1'
        if len(s1) == m:
            break
        s1 += '1'
        if len(s1) == m:
            break
    s2 = ''
    for i in range(m):
        if s1[i] == '1':
            s2 += '0'
        else:
            s2 += '1'
    s1 = ' '.join(s1)
    s2 = ' '.join(s2)
    print(s1)
    n -= 1
    while True:
        if n == 0:
            break
        n -= 1
        print(s2)
        if n == 0:
            break
        n -= 1
        print(s2)
        if n == 0:
            break
        n -= 1
        print(s1)
        if n == 0:
            break
        n -= 1
        print(s1)

Solution (Python):
for i in range(int(input())):
    (n, m) = map(int, input().split())
    org = '0 1 '
    rev = '1 0 '
    first = ''
    second = ''
    for i in range(m // 2):
        if i % 2:
            first += rev
            second += org
        else:
            first += org
            second += rev
    for i in range(n // 2):
        if i % 2:
            print(first)
            print(second)
        else:
            print(second)
            print(first)