Gửi bài giải
Điểm:
0,70 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cho một vườn hoa ~N \times M~, mỗi ô là một bông hoa có chiều cao là ~H_{i, j}~. Chiều cao của các bông hoa đều phân biệt. Ông chủ muốn chọn một hình chữ nhật các bông hoa sao cho chiều cao của bông hoa nằm ở góc trái trên và góc phải dưới cao hơn hẳn chiều cao của các bông hoa còn lại trong hình chữ nhật.
Một hình chữ nhật có hai góc là ~(x_1, y_1)~ và ~(x_2, y_2)~ với ~1 \le x_1 \le x_2 \le N~ và ~1 \le y_1 \le y_2 \le M~ thỏa mãn khi với mọi ~x_3~, ~y_3~ sao cho ~x_1 \le x_3 \le x_2~, ~y_1 \le y_3 \le y_2~:
~H_{x_3, y_3} \le min(H_{x_1, y_1}, H_{x_2, y_2})~
Vì vườn hoa rất lớn hãy giúp ông chủ đếm có bao nhiêu hình chữ nhật các bông hoa thỏa mãn điều kiện nhé.
Input
- Dòng đầu là ~2~ số nguyên ~N~, ~M~ ~(N \times M \le 10^5, N \le 20)~.
- ~N~ dòng tiếp theo, mỗi dòng gồm ~M~ số ~H_{i, j}~ ~(1 \le H_{i, j} \le N \times M)~.
Output
- In ra một dòng duy nhất là số hình chữ nhật thỏa mãn.
Sample Input 1
2 5
6 1 9 2 3
5 8 4 7 10
Sample Output 1
30
Sample Input 2
2 5
5 1 4 2 3
6 8 7 10 9
Sample Output 2
26
Scoring
- ~20\%~ số test đầu có ~N \times M \le 1000~.
- ~80\%~ số test còn lại không có điều kiện gì thêm.
Bình luận