[Buổi 12][Củng cố ma trận][ADV] Bài 1: Khung đồng tâm


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

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

  1. Đọc rows, cols, k và ma trận.
  2. 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.
  3. Nếu layer==k, cộng giá trị.
  4. 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

There are no comments at the moment.

Zalo