CF1101C.Division and Union
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n segments [li,ri] for 1≤i≤n. You should divide all segments into two non-empty groups in such way that there is no pair of segments from different groups which have at least one common point, or say that it's impossible to do it. Each segment should belong to exactly one group.
To optimize testing process you will be given multitest.
给定 n 条线段 [li,ri],其中 1≤i≤n。你需要将所有线段划分为两个非空组,使得来自不同组的任意两条线段均不相交(即没有公共点);若无法做到,则需说明这是不可能的。每条线段必须且仅能属于其中一个组。
为优化测试过程,你将收到多组测试数据。
输入格式
The first line contains one integer T (1≤T≤50000) — the number of queries. Each query contains description of the set of segments. Queries are independent.
First line of each query contains single integer n (2≤n≤105) — number of segments. It is guaranteed that ∑n over all queries does not exceed 105.
The next n lines contains two integers li, ri per line (1≤li≤ri≤2⋅105) — the i-th segment.
第一行包含一个整数 T(1≤T≤50000)—— 查询次数。每次查询包含一组线段的描述,且各次查询相互独立。
每次查询的第一行包含一个整数 n(2≤n≤105)—— 线段的数量。保证所有查询中 n 的总和不超过 105。
接下来的 n 行,每行包含两个整数 li、ri(1≤li≤ri≤2⋅105)—— 第 i 条线段。
输出格式
For each query print n integers t1,t2,…,tn (ti∈1,2) — for each segment (in the same order as in the input) ti equals 1 if the i-th segment will belongs to the first group and 2 otherwise.
If there are multiple answers, you can print any of them. If there is no answer, print −1.
对于每个查询,输出 n 个整数 t1,t2,…,tn(其中 ti∈{1,2})——对于每个线段(顺序与输入中相同),若第 i 个线段属于第一组,则 ti=1,否则 ti=2。
若存在多个合法答案,输出任意一个即可;若不存在合法答案,则输出 −1。
输入输出样例
输入#1
3 2 5 5 2 3 3 3 5 2 3 2 3 3 3 3 4 4 5 5
输出#1
2 1 -1 1 1 2
说明/提示
In the first query the first and the second segments should be in different groups, but exact numbers don't matter.
In the second query the third segment intersects with the first and the second segments, so they should be in the same group, but then the other group becomes empty, so answer is −1.
In the third query we can distribute segments in any way that makes groups non-empty, so any answer of 6 possible is correct.
在第一次查询中,第一条和第二条线段应属于不同的组,但具体编号无关紧要。
在第二次查询中,第三条线段与第一条和第二条线段均相交,因此它们必须属于同一组;但此时另一组将为空,故答案为 −1。
在第三次查询中,我们可以以任意方式分配线段,只要保证各组均非空即可,因此 6 种可能的答案中的任意一个都是正确的。
输入解题思路,AI测评打分。不知道怎么写?