Ma trận "ảo diệu"

Xem PDF

Điểm: 500 Thời gian: 0.5s Bộ nhớ: 256M Input: bàn phím Output: màn hình
  • Cho hai số nguyên dương \(n\)\(m\).

Ma trận \(A\) được gọi là ma trận "ảo diệu" nếu ma trận \(A\) thỏa mãn các điều kiện sau:

  • Ma trận \(A\) gồm \(2^{n}\) hàng và \(2^{m}\) cột.

  • Ta sắp xếp các số từ \(0\) đến \(2^{n+m}-1\) vào các ô của ma trận \(A\) sao cho hai số ở \(2\) ô kề nhau khác nhau đúng \(1\) bit trong biểu diễn nhị phân

(Hai ô được xem là kề nhau nếu chúng có chung \(1\) cạnh chung). Và đặc biệt ma trận này là ma trận tuần hoàn, tức là ứng với mỗi hàng, ô bên trái nhất và ô bên phải nhất kề nhau, và ứng với mỗi cột, ô trên cùng nhất và ô dưới cùng nhất kề nhau.

Yêu cầu: Cho hai số \(n,m\). Xuất ra ma trận "ảo diệu"

Input

  • Một dòng duy nhất chứa hai số nguyên dương \(n,m(n+m\le 20)\)

Output

  • In ra đáp án cần tìm. (Nếu có nhiều đáp án, in ra một đáp án bất kì, ngược lại nếu không có đáp án nào thỏa mãn, in ra "Happy New Year")

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(m = 1\) hoặc \(n = 1\)

  • Subtask \(2\) (\(20\%\) số điểm): \(m+n\le 5\)

  • Subtask \(3\) (\(60\%\) số điểm): Còn lại

Example

Test 1

Input
1 1
Output
0 1 
2 3

Bình luận

Không có bình luận nào.