Tập Luyện

Đề bài

Mô tả

Cho một bảng số nguyên không âm kích thước n×m, ô (i,j) có giá trị ai,j.

Có hai người di chuyển trong bảng:

  • Người 1 xuất phát tại ô (1,1) và kết thúc tại ô (n,m). Tại mỗi bước, từ ô (i,j) người này có thể đi đến (i+1,j) hoặc (i,j+1).
  • Người 2 xuất phát tại ô (n,1) và kết thúc tại ô (1,m). Tại mỗi bước, từ ô (i,j) người này có thể đi đến (i,j+1) hoặc (i1,j).

Hai người phải gặp nhau tại đúng một ô trên bảng. Ô gặp nhau này không được tính giá trị cho bất kỳ ai. Tất cả các ô khác mà ít nhất một trong hai người đi qua (bao gồm ô xuất phát và ô kết thúc của mỗi người) đều được cộng vào tổng giá trị, mỗi ô tính tối đa một lần.

Hãy chọn đường đi của hai người sao cho tổng giá trị thu được là lớn nhất.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • n dòng tiếp theo, mỗi dòng chứa m số nguyên mô tả bảng giá trị.

Dữ liệu ra

  • Một số nguyên duy nhất là tổng giá trị lớn nhất thu được.

Ràng buộc

  • 3n,m1000
  • 0ai,j105

Ví dụ

Input Output Giải thích
3 3
100 100 100
100 1 100
100 100 100
800 Hai người gặp nhau tại ô (2,2). Người 1 đi (1,1)(1,2)(2,2)(3,2)(3,3), người 2 đi (3,1)(2,1)(2,2)(2,3)(1,3). Ô (2,2) không được tính, tổng giá trị là 8×100=800.
3 3
1 10 1
1 10 1
1 10 1
26 Ô gặp nhau tốt nhất là (2,2) với một người đi dọc và một người đi ngang.
3 3
0 0 0
0 100 0
0 0 0
0 Mọi đường đi đều buộc một trong hai người phải đi qua ô (2,2), nhưng ô gặp nhau không được tính nên tổng luôn bằng 0.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0