KHU DÂN CƯ

Nguồn: None

(khudancu.*)

Bản đồ thành phố X có dạng lưới ô vuông \(m\) hàng \(n\) cột, các hàng được đánh số từ 1 tới \(m\), các cột được đánh số từ 1 tới \(n\). Mỗi một ô vuông trên bản đồ có thể là khu đất trống hoặc một khu dân cư hoặc một siêu thị.

Mỗi siêu thị chỉ có thể phục vụ các khu dân cư có khoảng cách so với nó không quá \(d\), nghĩa là nếu siêu thị nằm ở ô \((x,\ y)\) thì nó có thể phục vụ được tất cả các khu dân cư nằm trong hình vuông có ô trái trên là \((x\ - \ d,\ y\ - \ d)\), ô phải dưới là \((x\ + \ d,\ y\ + \ d)\) (như Hình 1).

Hình 1: Siêu thị có 𝐷 = 2 Hình 2: Bản đồ minh hoạ ví dụ

Một khu dân cư gọi là “chất lượng cao” nếu được ít nhất \(k\) siêu thị có thể phục vụ nó. Cho biết bản đồ của thành phố X, hãy đếm số lượng khu dân cư “chất lượng cao”.

Dữ liệu vào:

+ Dòng đầu chứa bốn số nguyên \(m,\ n,\ d\)\(k\) \((1 \leq d \leq \ max(m,\ n)\ ;\ 1 \leq k \leq m \times n)\);

+ \(m\) dòng tiếp theo, mỗi dòng gồm \(n\) ký tự, mỗi ký tự biểu diễn một ô vuông bản đồ. Mỗi ký tự sẽ thuộc một trong ba loại sau:

o ‘.’ biểu diễn một khu đất trống;

o ‘P’ biểu diễn một khu dân cư;

o ‘M’ biểu diễn một siêu thị;

Dữ liệu đảm bảo tồn tại ít nhất một khu dân cư và ít nhất một siêu thị.

Kết quả:

+ Ghi ra một số duy nhất là số khu dân cư “chất lượng cao”.

Ví dụ:

Input

Output

5 5 1 2 P.... ....P ..PM.
.M...
.....
1

Giải thích:

Bản đồ minh hoạ thành phố X như Hình 2.

Khu dân cư ở ô (1, 1) không được siêu thị nào phục vụ;

Khu dân cư ở ô (2, 5) được một siêu thị có thể phục vụ;

Khu dân cư ở ô (3, 3) được hai siêu thị có thể phục vụ;

Vậy có một khu dân cư “chất lượng cao”.

Ràng buộc:

  • Có 40% số test ứng với 40% số điểm của bài thoả mãn: \(m\ = \ 1;\ n,\ d\ \leq \ 10^{3}\);

  • Có 20% số test khác ứng với 20% số điểm của bài thoả mãn: \(m = 1;\ n \leq 10^{5}\);

  • Có 20% số test khác ứng với 20% số điểm của bài thoả mãn: \(2\ \leq \ m,n\ \leq \ 1000\); số khu dân cư, số siêu thị không vượt quá 1000;

  • Có 20% số test còn lại ứng với 20% số điểm của bài thoả mãn: \(2 \leq \ m,n\ \leq \ 1000\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]