CF2046E2.Cheops and a Contest (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的困难版本。不同之处在于本版本中 m 可以为任意值。只有在你解决了所有版本的问题后,才能 hack。
古埃及正在举行一场解题比赛,有 n 名参赛者,编号从 1 到 n。每位参赛者来自某个城市,城市编号从 1 到 m。每个城市至少有一名参赛者。
第 i 位参赛者有力量 ai、专长 si 和智慧 bi,满足 bi≥ai。比赛中的每道题目都有难度 d 和唯一的话题 t。第 i 位参赛者会解出这道题目,当且仅当:
- ai≥d,即他的力量不小于题目的难度,或者
- si=t 且 bi≥d,即他的专长与题目的话题相同,且智慧不小于题目的难度。
Cheops 想要选择题目,使得对于所有 i<j,来自城市 i 的每位参赛者解出的题目数量都严格多于来自城市 j 的每位参赛者。
请你找出最多 5n 道题目的集合,使得所有题目的话题互不相同,并满足 Cheops 的要求;或者说明这是不可能的。
输入格式
每个测试点包含多组测试数据。第一行包含测试组数 T(1≤T≤104)。接下来是每组测试数据的描述。
每组测试数据的第一行包含两个整数 n 和 m(2≤m≤n≤3⋅105),表示参赛者人数和城市数量。
接下来的 n 行描述参赛者。第 i 行包含三个整数 ai、bi、si(0≤ai,bi,si≤109,ai≤bi),分别表示力量、智慧和专长。
接下来的 m 行描述城市。第 i 行的第一个数是整数 ki(1≤ki≤n),表示第 i 个城市的参赛者人数。接下来是 ki 个整数 qi,1,qi,2,…,qi,ki(1≤qi,j≤n,1≤j≤ki),表示该城市参赛者的编号。保证每个参赛者恰好出现一次。
保证所有测试数据中 n 的总和不超过 3⋅105。
输出格式
对于每组测试数据,如果存在满足 Cheops 要求的题目集合,则第一行输出一个整数 p(1≤p≤5n),表示你选择的题目数量。
接下来 p 行,每行两个整数 d 和 t(0≤d,t≤109),分别表示该题目的难度和话题。所有题目的话题必须互不相同。
如果不存在满足 Cheops 要求的题目集合,输出 −1。
输入输出样例
输入#1
2 5 2 5 7 1 6 7 2 3 9 2 5 10 3 4 4 1 2 1 2 3 3 4 5 2 2 1 2 1 1 2 1 1 2 1 1
输出#1
7 6 4 6 5 5 6 5 7 4 8 4 9 7 1 -1
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?