CF1374E1.Reading Books (easy version)
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Easy and hard versions are actually different problems, so read statements of both problems completely and carefully.
Summer vacation has started so Alice and Bob want to play and joy, but... Their mom doesn't think so. She says that they have to read some amount of books before all entertainments. Alice and Bob will read each book together to end this exercise faster.
There are n books in the family library. The i-th book is described by three integers: ti — the amount of time Alice and Bob need to spend to read it, ai (equals 1 if Alice likes the i-th book and 0 if not), and bi (equals 1 if Bob likes the i-th book and 0 if not).
So they need to choose some books from the given n books in such a way that:
- Alice likes at least k books from the chosen set and Bob likes at least k books from the chosen set;
- the total reading time of these books is minimized (they are children and want to play and joy as soon a possible).
The set they choose is the same for both Alice an Bob (it's shared between them) and they read all books together, so the total reading time is the sum of ti over all books that are in the chosen set.
Your task is to help them and find any suitable set of books or determine that it is impossible to find such a set.
简单版本和困难版本实际上是两个不同的问题,因此请完整且仔细地阅读两个版本的题面。
暑假开始了,爱丽丝(Alice)和鲍勃(Bob)想玩耍、开心一下……但……他们的妈妈不这么认为。她要求他们必须先读完一定数量的书,才能开始所有娱乐活动。爱丽丝和鲍勃将一起共读每一本书,以更快地完成这项任务。
家庭图书馆中共有 n 本书。第 i 本书由三个整数描述:ti —— 爱丽丝和鲍勃共同阅读该书所需的时间;ai(若爱丽丝喜欢第 i 本书则为 1,否则为 0);bi(若鲍勃喜欢第 i 本书则为 1,否则为 0)。
因此,他们需要从给定的 n 本书中选出一个子集,使得:
- 在所选子集中,爱丽丝喜欢的书至少有 k 本,鲍勃喜欢的书也至少有 k 本;
- 所选书籍的总阅读时间最小(毕竟他们是孩子,想尽快开始玩耍和开心)。
他们所选择的书籍集合对爱丽丝和鲍勃是相同的(即共享的),并且他们将共同阅读所有被选中的书,因此总阅读时间为所选集合中所有书籍的 ti 值之和。
你的任务是帮助他们找出任意一个满足条件的书籍集合,或判定这样的集合不存在。
输入格式
The first line of the input contains two integers n and k (1≤k≤n≤2⋅105).
The next n lines contain descriptions of books, one description per line: the i-th line contains three integers ti, ai and bi (1≤ti≤104, 0≤ai,bi≤1), where:
- ti — the amount of time required for reading the i-th book;
- ai equals 1 if Alice likes the i-th book and 0 otherwise;
- bi equals 1 if Bob likes the i-th book and 0 otherwise.
输入的第一行包含两个整数 n 和 k(1≤k≤n≤2⋅105)。
接下来的 n 行每行描述一本书:第 i 行包含三个整数 ti、ai 和 bi(1≤ti≤104,0≤ai,bi≤1),其中:
- ti —— 阅读第 i 本书所需的时间;
- 若 Alice 喜欢第 i 本书,则 ai=1,否则 ai=0;
- 若 Bob 喜欢第 i 本书,则 bi=1,否则 bi=0。
输出格式
If there is no solution, print only one integer -1. Otherwise print one integer T — the minimum total reading time of the suitable set of books.
如果无解,仅输出一个整数 −1。否则输出一个整数 T —— 满足条件的书籍集合的最小总阅读时间。
输入输出样例
输入#1
8 4 7 1 1 2 1 1 4 0 1 8 1 1 1 0 1 1 1 1 1 0 1 3 0 0
输出#1
18
输入#2
5 2 6 0 0 9 0 0 1 0 1 2 1 1 5 1 0
输出#2
8
输入#3
5 3 3 0 0 2 1 0 3 1 0 5 0 1 3 0 1
输出#3
-1
输入解题思路,AI测评打分。不知道怎么写?