trang chủ / đề bài / thhv15_bhouse

Xây nhà

Đề bài

Mô tả

Sau nhiều năm tham dự trại hè kiếm tiền thưởng, Sơn Tùng dành dụm được một số tiền đủ để mua đất làm nhà. Mảnh đất cậu ta mua được có dạng hình chữ nhật với N mét chiều rộng và M mét chiều dài. Để dễ hình dung, mảnh đất có thể được chia thành N×M ô (N hàng, M cột), mỗi ô có một độ cao nhất định. Nhà của Sơn Tùng có thể xây trên một ô hoặc một số ô liền nhau có dạng hình chữ nhật (các cạnh nằm dọc theo đường lưới) và có cùng độ cao.

Yêu cầu: Hãy giúp Sơn Tùng đếm số phương án có thể xây được ngôi nhà của mình trên mảnh đất đã mua được, tức là đếm số hình chữ nhật con của lưới mà mọi ô bên trong có cùng độ cao. Hai phương án khác nhau nếu tập ô được chọn khác nhau.

Dữ liệu vào

  • Dòng đầu ghi hai số nguyên N và M.
  • N dòng tiếp theo, mỗi dòng ghi M số nguyên ai,j biểu thị độ cao của mỗi ô vuông trong mảnh đất.

Các số trên cùng một dòng cách nhau ít nhất một khoảng trắng.

Dữ liệu ra

Ghi một số nguyên là số phương án có thể xây nhà.

Ràng buộc

  • 1≤N,M≤1000;
  • 1≤ai,j≤109.

Ví dụ

Input Output Giải thích
5 3
2 2 2
2 2 1
1 1 1
2 1 2
1 2 1
27 Có 15 phương án gồm một ô và 12 phương án gồm nhiều ô, ví dụ hình chữ nhật 2×2 ở góc trên bên trái (toàn độ cao 2) hay cả hàng thứ ba (toàn độ cao 1).
3 4
1 1 2 2
1 1 2 2
3 1 1 1
27 Ví dụ bổ sung: các ô độ cao 1 tạo thành một vùng không phải hình chữ nhật và cho 17 phương án (trong đó có 9 phương án nằm trong khối 2×2 ở góc trên bên trái), khối 2×2 độ cao 2 cho 9 phương án, ô độ cao 3 cho 1 phương án.
1 5
1000000000 1000000000 7 1000000000 1000000000
7 Ví dụ bổ sung: hai cặp ô độ cao 109 bị ô độ cao 7 chia cắt nên không ghép thành một hình chữ nhật; có 5 phương án một ô và 2 phương án hai ô.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0