BOI 2015 - Tug of War
Xem PDFKéo co là môn thể thao rất phổ biến ở Byteland. Luật chơi rất đơn giản: hai đội kéo một sợi dây theo hai hướng ngược nhau. Giải kéo co từ thiện hằng năm của Byteland đang diễn ra và có rất nhiều người đăng ký. Với vai trò phụ trách tính công bằng, bạn cần chia những người tham gia thành hai đội để trận đấu có thể kéo dài.
Có tổng cộng \(2n\) người đăng ký, nên mỗi đội sẽ có \(n\) người. Sợi dây có \(n\) vị trí ở bên trái và \(n\) vị trí ở bên phải. Những tay kéo co hàng đầu Byteland khá kén chọn: mỗi người chỉ chấp nhận đúng một vị trí bên trái và đúng một vị trí bên phải. Bạn cũng biết sức mạnh của từng người.
Ban tổ chức đưa ra một số nguyên \(k\) và hỏi: có thể chia thành hai đội, mỗi đội có \(n\) người, sao cho mỗi người đứng ở một trong hai vị trí mình chấp nhận, không có hai người đứng cùng một vị trí, và tổng sức mạnh của hai đội chênh lệch không quá \(k\) hay không?
Dữ liệu vào
Dòng đầu chứa số nguyên dương \(n\), là số vị trí ở mỗi bên sợi dây, và số nguyên \(0\le k\le20n\), là độ chênh lệch sức mạnh tối đa được phép. Những người tham gia được đánh số từ \(1\) đến \(2n\).
Mỗi dòng trong \(2n\) dòng tiếp theo mô tả một người. Dòng thứ \(i\) chứa ba số nguyên dương \(l_i,r_i,s_i\) (\(1\le l_i,r_i\le n\), \(1\le s_i\le20\)), cho biết người \(i\) có sức mạnh \(s_i\) và muốn đứng ở vị trí \(l_i\) bên trái hoặc vị trí \(r_i\) bên phải sợi dây.
Dữ liệu ra
In YES nếu có thể tạo hai đội thỏa mãn tất cả các yêu cầu trên; ngược lại, in NO. Kết quả được in trên một dòng duy nhất.
Ràng buộc
- \(1\le n\le30\,000\).
- \(k\) là số nguyên và \(0\le k\le20n\).
- \(1\le l_i,r_i\le n\) và \(1\le s_i\le20\) với mọi \(1\le i\le2n\).
Phân nhóm
- 18 điểm: \(n\le10\).
- 30 điểm: \(n\le2000\).
- 23 điểm: \(n\le30\,000\) và \(s_i=1\) với mọi \(1\le i\le2n\).
- 29 điểm: \(n\le30\,000\).
Ví dụ
Ví dụ 1
Input
4 1
1 1 1
2 1 2
2 2 8
1 2 2
3 3 5
3 3 2
4 4 1
4 4 2
Output
YES
Giải thích
Có thể xếp những người \(1,3,6,7\) ở bên trái, tạo thành đội có tổng sức mạnh \(1+8+2+1=12\), và những người \(2,4,5,8\) ở bên phải, tạo thành đội có tổng sức mạnh \(2+2+5+2=11\). Độ chênh lệch sức mạnh giữa hai đội là \(1\).
Ví dụ 2
Input
2 5
1 1 1
1 2 4
2 2 1
2 1 4
Output
NO
Giải thích
Hai người có sức mạnh \(4\) buộc phải ở cùng một đội, nên độ chênh lệch sức mạnh nhỏ nhất giữa hai đội là \(6\).
Kỳ thi:
- BOI 2015 - Ngày 2 (2 Tháng 1., 2015)
Bình luận