Problem
https://vn.spoj.com/problems/BONUS13
https://oj.vnoi.info/problem/BONUS13
Cờ vua (còn gọi là cờ quốc tế) là môn thể thao trí tuệ được giới trẻ Việt Nam yêu thích và cũng là môn thể thao mà Việt Nam có quyền tự hào vì những thành tích xuất sắc mà các đại kiện tướng quốc tế trẻ (cả nam và nữ) của chúng ta đã đạt được.
Thuận vừa trúng thưởng trong một kỳ thi tìm hiểu về phong trào cờ vua do Liên đoàn cờ vua Việt Nam tổ chức. Ban tổ chức có một cách thức xác định trị giá giải thưởng đòi hỏi người trúng thưởng phải am hiểu về cờ vua, nếu muốn giá trị giải thưởng cao hơn. Người trúng thưởng cần đặt 4 quân cờ Hậu, Xe, Tượng, Mã lên bàn cờ. Phần thưởng thu được sẽ là tổng giá trị của các ô bị 4 quân cờ này khống chế.
Bàn cờ vua là một hình vuông kích thước 8x8 gồm 8 hàng ngang đánh số từ 1-8 từ dưới lên và 8 cột dọc đánh số từ 1-8 từ trái qua phải. Ô nằm trên hàng i và cột j được kí hiệu là ô (i,j). Hậu, Xe, Tượng, Mã là 4 quân cờ mạnh nhất của cờ vua, khả năng khống chế của chúng được mô tả như sau :
- Hậu: tất cả các ô thuộc cùng hàng ngang, cột dọc và đường chéo
- Xe: tất cả các ô thuộc cùng hàng ngang, cột dọc
- Tượng: tất cả các ô thuộc cùng đường chéo
- Mã: tất cả các ô ở đỉnh dối diện trên đường chéo của hình chữ nhật kích thước 2 x 3
Trên K ô của bàn cờ, Ban tổ chức (BTC) có ghi các giá trị thưởng. Các ô này tạm gọi là ô thưởng. Nhiệm vụ của Thuận là tìm 4 ô trống (không có ghi giá trị) để đặt 4 quân cờ Hậu, Xe, Tượng, Mã sao cho giá trị giải thưởng là lớn nhất. Sau khi Thuận đặt xong, BTC sẽ xác định những ô thưởng nào bị ít nhất một quân cờ khống chế. Giá trị giải thưởng là tổng giá trị của các ô này.
- Dòng đầu tiên ghi số nguyên dương K (K <= 60).
- Dòng thứ i trong số K dòng tiếp theo ghi 3 số nguyên dương ui,vi,ci cho biết ô (ui,vi) là ô thưởng với giá trị ci (ci < 10^9).
Output
- Ghi ra một số nguyên duy nhất là giá trị phần thưởng tìm được.
Example
Input
11
1 3 10
1 7 10
1 8 10
2 2 25
2 3 10
3 2 10
3 5 10
6 1 10
8 1 11
8 3 10
8 7 10
Output
126
Giải thích : Thuận đặt quân Hậu ở ô (7,2), quân Xe ở ô (6,7), quân Tượng ở ô (2,4) và quân Mã ở ô (1,1).**
Tutorial
Chia ma trận thành hai danh sách những ô có thưởng (b) và những ô không thưởng (c). Duyệt 4 vị trí cho 4 con cờ trong danh sách những ô không thưởng, sau đó duyệt từng vị trí trong danh sách thưởng, xem nó có bị ăn không rồi cập nhật.
Ở bước kiểm tra thì nên tối ưu trong O(1) bằng cách trước đó kiểm tra xem mỗi vị trí của từng loại trong c với mỗi vị trí trong b xem có ăn được không bằng 4 mảng tương ứng với 4 loại cờ.
Submission
Nếu bạn thấy bài viết này hay, hãy share bài viết này cho mọi người nhé 😉.
Share this post →