Xử lý mảng 2 chiều

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Tổng đường chéo 100 (p) 1.0s 256M
2 Ma trận tam giác dưới 100 (p) 1.0s 256M
3 Ma trận hoán vị 100 (p) 1.0s 256M
4 Xử lý mảng tổng hợp 100 (p) 1.0s 256M
5 Ma trận Zíc Zắc 100 (p) 1.0s 256M

1. Tổng đường chéo

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho ma trận vuông \(A\) kích thước \(n \cdot n\). Hãy tính và in ra tổng các phần tử nằm trên đường chéo chính và tổng các phần tử nằm trên đường chéo phụ của ma trận đó.

Trong đó:

  • Đường chéo màu xanh lá cây là đường chéo chính).
  • Đường chéo màu đỏ là đường chéo phụ.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(1 \leq n \leq 100\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa \(n\) số nguyên là các phần tử của ma trận \(A\) (\(|A_{i,j}| \leq 10^6\)).

Output

  • In ra hai số nguyên trên cùng một dòng, lần lượt là tổng các phần tử trên đường chéo chính và tổng các phần tử trên đường chéo phụ.

Example

Test 1

Input
3
1 2 3
4 5 6
7 8 9
Output
15 15
Note

Ma trận \(3 \cdot 3\):

\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \]

  • Các phần tử trên đường chéo chính là: \(1, 5, 9\). Tổng là \(1 + 5 + 9 = 15\).
  • Các phần tử trên đường chéo phụ là: \(3, 5, 7\). Tổng là \(3 + 5 + 7 = 15\).

2. Ma trận tam giác dưới

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một ma trận vuông \(A\) kích thước \(n \cdot n\) gồm các số nguyên. Ma trận tam giác dưới là phần của ma trận bao gồm các phần tử nằm trên đường chéo chính và các phần tử nằm phía dưới đường chéo chính.

Cụ thể, phần tử \(a_{i,j}\) thuộc ma trận tam giác dưới nếu \(i \ge j\) (với \(i\) là chỉ số dòng và \(j\) là chỉ số cột, \(1 \le i, j \le n\)).

Hãy viết chương trình nhập vào ma trận \(A\) và in ra các phần tử thuộc ma trận tam giác dưới theo thứ tự từ trái sang phải, từ trên xuống dưới.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(1 \le n \le 100\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa \(n\) số nguyên \(a_{i,j}\) (\(|a_{i,j}| \le 10^9\)) đại diện cho các phần tử của ma trận.

Output

  • In ra các phần tử thuộc ma trận tam giác dưới. Mỗi dòng in các phần tử thuộc cùng một hàng của ma trận tam giác dưới, các phần tử cách nhau bởi một khoảng trắng.

Example

Test 1

Input
4
1 3 1 9
1 2 5 7
1 2 3 1 
1 2 3 4
Output
1
1 2 
1 2 3
1 2 3 4

3. Ma trận hoán vị

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho ma trận \(A\) kích thước \(M \times N\). Hãy in ra ma trận chuyển vị của nó.

Ma trận chuyển vị của ma trận \(A\) kích thước \(M \times N\) là ma trận \(A^T\) kích thước \(N \times M\) có được bằng cách chuyển các dòng của \(A\) thành các cột (hoặc chuyển các cột thành các dòng).

Ví dụ với ma trận \(2 \times 3\):
Nếu \(A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}\) thì ma trận chuyển vị \(A^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix}\).

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(M, N\).
  • \(M\) dòng tiếp theo, mỗi dòng chứa \(N\) số nguyên là các phần tử của ma trận.

Output

  • In ra ma trận chuyển vị kích thước \(N \times M\).

Constraints

  • \(1 \le M, N \le 100\)
  • Các phần tử của ma trận có giá trị tuyệt đối không quá \(10^9\).

Example

Test 1

Input
2 3
1 2 3
4 5 6
Output
1 4
2 5
3 6

4. Xử lý mảng tổng hợp

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho ma trận \(A\) kích thước \(M \times N\). Với mỗi hàng của ma trận, hãy tìm giá trị nhỏ nhất (min), giá trị lớn nhất (max) và tổng các phần tử của hàng đó.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(M\) và \(N\) (\(1 \le M, N \le 100\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa \(N\) số nguyên là các phần tử của ma trận \(A\) (\(|A_{i,j}| \le 10^6\)).

Output

  • Gồm \(M\) dòng, mỗi dòng chứa ba số nguyên lần lượt là giá trị nhỏ nhất, giá trị lớn nhất và tổng của hàng tương ứng. Các số cách nhau bởi một khoảng trắng.

Example

Test 1

Input
2 3
1 5 3
8 2 6
Output
1 5 9
2 8 16
Note
  • Hàng 1: \(\{1, 5, 3\} \rightarrow \min=1, \max=5, \text{tổng}=1+5+3=9\).
  • Hàng 2: \(\{8, 2, 6\} \rightarrow \min=2, \max=8, \text{tổng}=8+2+6=16\).

5. Ma trận Zíc Zắc

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho hai số nguyên dương \(M\) và \(N\). Hãy in ra ma trận kích thước \(M \times N\) chứa các số từ \(1\) đến \(M \cdot N\) theo quy tắc đường zíc zắc:

  • Dòng thứ nhất được điền từ trái sang phải.
  • Dòng thứ hai được điền từ phải sang trái.
  • Dòng thứ ba được điền từ trái sang phải.
  • Tiếp tục như vậy cho đến hết \(M\) dòng.

Input

  • Một dòng duy nhất chứa hai số nguyên dương \(M\) và \(N\) (\(1 \le M, N \le 100\)).

Output

  • Ma trận kích thước \(M \times N\) theo quy tắc zíc zắc. Các số trên cùng một dòng cách nhau bởi một khoảng trắng.

Example

Test 1

Input
3 4
Output
1 2 3 4 
8 7 6 5 
9 10 11 12 
Note
  • Dòng 1: Điền từ \(1\) đến \(4\) theo chiều từ trái sang phải.
  • Dòng 2: Điền từ \(5\) đến \(8\) theo chiều từ phải sang trái.
  • Dòng 3: Điền từ \(9\) đến \(12\) theo chiều từ trái sang phải.
  • Ví dụ: \(M = 3, N = 3\) thì cần in ra màn hình ma trận:
    1 2 3
    6 5 4
    7 8 9
    

Test 2

Input
4 2
Output
1 2
4 3
5 6
8 7