[Buổi 12][Củng cố ma trận][ADV] Bài 1: Khung đồng tâm
Khung đồng tâm
Bối cảnh
Mỗi ô của ma trận nằm ở một "lớp" tính từ biên ngoài: lớp 0 là biên, lớp 1 là biên của phần còn lại sau khi bỏ lớp 0, v.v.
Cho k, hãy tính tổng các ô thuộc đúng lớp k. Có thể xác định lớp của ô bằng khoảng cách nhỏ nhất tới bốn cạnh.
Yêu cầu
- Đọc rows, cols, k và ma trận.
- Với mỗi ô, tính
layer = min(i, rows-1-i, j, cols-1-j)bằng các câu lệnh if. - Nếu layer==k, cộng giá trị.
- In tổng.
Input
Dòng 1: rows cols k; sau đó ma trận.
Output
Một số nguyên.
Ràng buộc
1 ≤ rows,cols ≤ 100, 0 ≤ k < (min(rows,cols)+1)/2.
Ví dụ 1
Input
5 5 0
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
Output
16
Giải thích
Lớp 0 là 16 ô biên của ma trận 5×5, mỗi ô bằng 1 nên tổng bằng 16.
Ví dụ 2
Input
5 5 1
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
Output
16
Giải thích
Lớp 1 gồm 8 ô bao quanh tâm, mỗi ô bằng 2 nên tổng bằng 16.
Thông tin học tập
- Module: M03
- Buổi: B12
- Loại bài: ADVANCED
- Độ khó: Hard
- Concepts: 2D static arrays, matrix layers, border traversal, minimum distance to border
- Giới hạn kiến thức: B01-B12
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments