trang chủ / đề bài / incmatrix

Ma trận tăng

Đề bài

Mô tả

Một ma trận a kích thước n×m được gọi là tăng nếu mọi hàng đều tăng ngặt từ trái sang phải (ai,1<ai,2<…<ai,m) và mọi cột đều tăng ngặt từ trên xuống dưới (a1,j<a2,j<…<an,j).

Cho một ma trận gồm các số nguyên không âm. Hãy thay mỗi giá trị 0 bằng một số nguyên dương sao cho ma trận thu được là ma trận tăng và tổng các phần tử của nó lớn nhất có thể, hoặc cho biết điều đó là không thể.

Dữ liệu đảm bảo mọi giá trị 0 chỉ nằm ở các ô bên trong, tức là không nằm ở hàng đầu, hàng cuối, cột đầu hay cột cuối.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m: số hàng và số cột của ma trận.
  • n dòng tiếp theo, mỗi dòng chứa m số nguyên không âm ai,1,ai,2,…,ai,m.

Dữ liệu ra

In ra tổng lớn nhất có thể của các phần tử sau khi thay hết các số 0 bằng số nguyên dương sao cho ma trận là ma trận tăng. Nếu không tồn tại cách thay nào, in ra −1.

Ràng buộc

  • 3≤n,m≤500
  • 0≤ai,j≤8000
  • Với mọi ai,j=0 ta có 1<i<n và 1<j<m.

Ví dụ

Input Output Giải thích
4 5
1 3 5 6 7
3 0 7 0 9
5 0 0 0 10
8 9 10 11 12
144 Ma trận sau khi điền là
1 3 5 6 7
3 6 7 8 9
5 7 8 9 10
8 9 10 11 12
với tổng bằng 144.
3 3
1 2 3
2 0 4
4 5 6
30 Ô trống chỉ có thể nhận giá trị 3: nó phải lớn hơn 2 và nhỏ hơn min(4,5).
3 3
1 2 3
3 0 4
4 5 6
-1 Ô trống phải lớn hơn 3 (bên trái) và lớn hơn 2 (bên trên), đồng thời nhỏ hơn min(4,5)=4, nên không có giá trị nguyên nào thoả mãn.
3 3
1 2 3
2 3 4
3 4 2
-1 Ma trận không có ô trống nào nhưng bản thân nó đã không tăng: hàng cuối có 4>2.

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