trang chủ / đề bài / voi18_bonus

Phần thưởng

Đề bài

Mô tả

Vinh là người thắng cuộc trong một cuộc thi "Tìm hiểu kiến thức vũ trụ" và được nhận các phần thưởng do công ty AZ tài trợ. Trên mỗi ô của một lưới kích thước n×n ô vuông có cạnh độ dài đơn vị, Ban tổ chức xếp một món quà. Các dòng của bảng được đánh số từ 1 đến n, từ trên xuống dưới và các cột của bảng được đánh số từ 1 đến n, từ trái qua phải. Ô nằm trên giao của dòng i và cột j được gọi là ô (i,j) và món quà trên ô đó có giá trị là aij (1≤i,j≤n).

Ban tổ chức cho phép Vinh chọn một trong k phương án nhận phần thưởng. Phần thưởng trong phương án thứ s (s=1,2,…,k) được xác định như sau: Vinh được nhận các món quà trên các ô của lưới thuộc một trong p hình vuông kích thước r×r, trong đó hình thứ h xác định bởi ô góc trên trái có tọa độ (xsh,ysh), h=1,2,…,p. Chú ý là các hình vuông này nằm trọn vẹn trong lưới và có thể có các hình vuông là giao nhau. Mỗi món quà chỉ được nhận một lần dù ô của nó thuộc nhiều hình vuông.

Yêu cầu: Hãy giúp Vinh chọn phương án nhận phần thưởng với tổng giá trị của các món quà nhận được là lớn nhất.

Dữ liệu vào

  • Dòng thứ nhất chứa bốn số nguyên dương n, k, r, p;
  • Dòng thứ i trong số n dòng tiếp theo chứa n số nguyên dương, số thứ j là aij (aij≤106), (i=1,2,…,n; j=1,2,…,n);
  • Dòng thứ s trong số k dòng tiếp theo chứa 2×p số nguyên dương xs1,ys1,xs2,ys2,…,xsp,ysp xác định p hình vuông trong phương án thứ s (s=1,2,…,k); hình vuông thứ h gồm các ô (i,j) với xsh≤i≤xsh+r−1 và ysh≤j≤ysh+r−1.

Dữ liệu ra

In ra một số nguyên duy nhất là giá trị lớn nhất của tổng giá trị các món quà mà Vinh có thể nhận được.

Ràng buộc

  • n≤500; k≤105; p≤5; r≤n;
  • aij≤106;
  • Các hình vuông nằm trọn vẹn trong lưới.

Subtasks

  • Subtask 1 (25% số test, 25% số điểm): n≤50; k≤50; p≤5;
  • Subtask 2 (25% số test, 25% số điểm): n≤500; k≤105; p=2;
  • Subtask 3 (25% số test, 25% số điểm): n≤500; k≤105; p=3;
  • Subtask 4 (25% số test, 25% số điểm): n≤500; k≤105; p≤5.

Ví dụ

Input Output Giải thích
4 2 2 3
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 2 2 3 3
1 1 1 3 3 1
12 Phương án 1 gồm ba hình vuông 2×2 có góc trên trái (1,1), (2,2), (3,3); hai hình kề nhau chung một ô nên chỉ nhận 10 ô, tổng giá trị 10. Phương án 2 gồm ba hình vuông rời nhau có góc trên trái (1,1), (1,3), (3,1), nhận 12 ô, tổng giá trị 12.
3 2 2 2
1 2 3
4 5 6
7 8 9
1 2 1 1
1 1 1 1
21 Phương án 1: hình vuông góc (1,2) gồm các ô dòng 1,2, cột 2,3 (tổng 16), hình vuông góc (1,1) gồm các ô dòng 1,2, cột 1,2 (tổng 12), hai hình chung các ô (1,2), (2,2) (tổng 7): nhận 16+12−7=21. Phương án 2 là hai lần cùng một hình vuông, nhận 12.

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