305863: CF1101C. Division and Union
Memory Limit:256 MB
Time Limit:2 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Division and Union
题意翻译
- 给定 $n$ 条线段 $[l_i,r_i]$,问能不能把它们分为两部分,使第一部分所有线段的并集和第二部分所有线段的并集**没有交集**。 - 若可以,输出 $n$ 个数 $a_i(a_i\in\{1,2\})$,当 $a_i=1$ 时表示第 $i$ 条线段被划分进第一部分;当 $a_i=2$ 时表示第 $i$ 条线段被划分进第二部分。 - **如果存在多种方案,输出任意一种。** - 若不可以,输出 `-1`。 - **本题多测。** - $1\le T\le 50000$, $2\le n\le 10^5$, $1\le l_i\le r_i\le 2\times 10^5$,数据保证 $\sum n\le 10^5$。题目描述
There are $ n $ segments $ [l_i, r_i] $ for $ 1 \le i \le 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.输入输出格式
输入格式
The first line contains one integer $ T $ ( $ 1 \le T \le 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 \le n \le 10^5 $ ) — number of segments. It is guaranteed that $ \sum{n} $ over all queries does not exceed $ 10^5 $ . The next $ n $ lines contains two integers $ l_i $ , $ r_i $ per line ( $ 1 \le l_i \le r_i \le 2 \cdot 10^5 $ ) — the $ i $ -th segment.
输出格式
For each query print $ n $ integers $ t_1, t_2, \dots, t_n $ ( $ t_i \in \{1, 2\} $ ) — for each segment (in the same order as in the input) $ t_i $ 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 $ .
输入输出样例
输入样例 #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