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 nn books in the family library. The ii-th book is described by three integers: tit_i — the amount of time Alice and Bob need to spend to read it, aia_i (equals 11 if Alice likes the ii-th book and 00 if not), and bib_i (equals 11 if Bob likes the ii-th book and 00 if not).

So they need to choose some books from the given nn books in such a way that:

  • Alice likes at least kk books from the chosen set and Bob likes at least kk 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 tit_i 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)想玩耍、开心一下……但……他们的妈妈不这么认为。她要求他们必须先读完一定数量的书,才能开始所有娱乐活动。爱丽丝和鲍勃将一起共读每一本书,以更快地完成这项任务。

家庭图书馆中共有 nn 本书。第 ii 本书由三个整数描述:tit_i —— 爱丽丝和鲍勃共同阅读该书所需的时间;aia_i(若爱丽丝喜欢第 ii 本书则为 11,否则为 00);bib_i(若鲍勃喜欢第 ii 本书则为 11,否则为 00)。

因此,他们需要从给定的 nn 本书中选出一个子集,使得:

  • 在所选子集中,爱丽丝喜欢的书至少有 kk 本,鲍勃喜欢的书也至少有 kk 本;
  • 所选书籍的总阅读时间最小(毕竟他们是孩子,想尽快开始玩耍和开心)。

他们所选择的书籍集合对爱丽丝和鲍勃是相同的(即共享的),并且他们将共同阅读所有被选中的书,因此总阅读时间为所选集合中所有书籍的 tit_i 值之和。

你的任务是帮助他们找出任意一个满足条件的书籍集合,或判定这样的集合不存在。

输入格式

The first line of the input contains two integers nn and kk (1≤k≤n≤2⋅1051 \le k \le n \le 2 \cdot 10^5).

The next nn lines contain descriptions of books, one description per line: the ii-th line contains three integers tit_i, aia_i and bib_i (1≤ti≤1041 \le t_i \le 10^4, 0≤ai,bi≤10 \le a_i, b_i \le 1), where:

  • tit_i — the amount of time required for reading the ii-th book;
  • aia_i equals 11 if Alice likes the ii-th book and 00 otherwise;
  • bib_i equals 11 if Bob likes the ii-th book and 00 otherwise.

输入的第一行包含两个整数 nn 和 kk(1≤k≤n≤2⋅1051 \le k \le n \le 2 \cdot 10^5)。

接下来的 nn 行每行描述一本书:第 ii 行包含三个整数 tit_i、aia_i 和 bib_i(1≤ti≤1041 \le t_i \le 10^4,0≤ai,bi≤10 \le a_i, b_i \le 1),其中:

  • tit_i —— 阅读第 ii 本书所需的时间;
  • 若 Alice 喜欢第 ii 本书,则 ai=1a_i = 1,否则 ai=0a_i = 0;
  • 若 Bob 喜欢第 ii 本书,则 bi=1b_i = 1,否则 bi=0b_i = 0。

输出格式

If there is no solution, print only one integer -1. Otherwise print one integer TT — the minimum total reading time of the suitable set of books.

如果无解,仅输出一个整数 −1-1。否则输出一个整数 TT —— 满足条件的书籍集合的最小总阅读时间。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页