JOI 2017 - Ridge

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Miệng chảo JOI là một địa hình đẹp, được nhiều người leo núi yêu thích nhờ phong cảnh tuyệt vời. Đặc biệt, cảnh nhìn từ những nơi được gọi là sống núi rất ngoạn mục.

Miệng chảo JOI là một hình chữ nhật dài \(H\) kilômét theo hướng Bắc - Nam và \(W\) kilômét theo hướng Đông - Tây. Chia vùng đất theo từng kilômét ở cả hai hướng, ta thu được \(H \times W\) khu vực. Trong mỗi khu vực, độ cao là không đổi; độ cao của mọi cặp khu vực khác nhau đều khác nhau.

Khi mưa rơi xuống một khu vực, nước chảy sang tất cả các khu vực kề cạnh theo hướng Bắc, Nam, Đông hoặc Tây có độ cao thấp hơn khu vực đó. Nếu không có khu vực kề cạnh nào thấp hơn, nước đọng lại tại khu vực hiện tại. Nước chảy đến từ khu vực khác cũng tuân theo quy tắc này. Bên ngoài miệng chảo JOI là những vách núi dốc của vành miệng chảo, nên nước không thể chảy ra ngoài.

Một khu vực được gọi là sống núi nếu, khi mưa chỉ rơi xuống khu vực đó, cuối cùng nước đọng lại tại nhiều hơn một khu vực.

Hãy tính số khu vực là sống núi.

Dữ liệu vào

Dữ liệu vào gồm \(H+1\) dòng:

  • Dòng thứ nhất chứa hai số nguyên \(H, W\), cho biết kích thước của miệng chảo JOI theo hướng Bắc - Nam và Đông - Tây.
  • Mỗi dòng trong \(H\) dòng tiếp theo chứa \(W\) số nguyên. Số nguyên \(M_{i,j}\) ở vị trí thứ \(j\) trên dòng thứ \(i\) là độ cao của khu vực ở hàng thứ \(i\) tính từ phía Bắc và cột thứ \(j\) tính từ phía Tây.

Dữ liệu ra

In ra một số nguyên trên một dòng: số khu vực là sống núi.

Ràng buộc

Các giá trị thỏa mãn:

  • \(1 \le H \le 1\,000\).
  • \(1 \le W \le 1\,000\).
  • \(1 \le M_{i,j} \le H \times W\).

Với mọi \((i,j) \ne (k,l)\), ta có \(M_{i,j} \ne M_{k,l}\).

Phân nhóm

Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.

Ví dụ

Ví dụ 1

Input
3 3
2 9 4
7 5 3
6 1 8
Output
4
Giải thích

Bốn khu vực có độ cao \(5,7,8,9\) là sống núi. Chẳng hạn, nếu mưa rơi xuống khu vực có độ cao \(9\), cuối cùng nước đọng lại tại ba khu vực có độ cao \(1,2,3\), nên khu vực có độ cao \(9\) là sống núi. Nếu mưa rơi xuống khu vực có độ cao \(6\), cuối cùng nước chỉ đọng lại tại khu vực có độ cao \(1\), nên khu vực có độ cao \(6\) không phải là sống núi.

Ví dụ 2

Input
3 5
5 3 8 2 14
9 10 4 1 13
12 7 11 6 15
Output
4
Giải thích

Bốn khu vực có độ cao \(8,10,11,12\) là sống núi.

Nguồn

Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 5: Ridge.

Bình luận

Mới nhất
Tải bình luận...

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

Kỳ thi: