CF1148D Dirty Deeds Done Dirt Cheap
题目描述
有 $n$ 个整数对 $(a_1, b_1), (a_2, b_2), \cdots, (a_n, b_n)$. 保证 $a_1, b_1, a_2, b_2, \cdots, a_n, b_n$ 两两不相等, 并且均在区间 $[1, 2 \cdot n]$ 内.
好序列的定义:
对于一个序列 $x_1, x_2, \cdots, x_{2k}$, 满足
- $x_1 < x_2 > x_3 < \cdots < x_{2k - 2} > x_{2k - 1} < x_{2k}$ 或
- $x_1 > x_2 < x_3 > \cdots > x_{2k - 2} < x_{2k - 1} > x_{2k}$.
求一个序列 $i_1, i_2, \cdots, i_t$ 满足 $a_{i_1}, b_{i_1}, a_{i_2}, b_{i_2}, \cdots, a_{i_t}, b_{i_t}$ 是好序列.
输出 $t$ 的最大值以及对应的序列 $i_1, i_2, \cdots, i_t$.
输入格式
第一行包含一个整数 $n$, 即数对的个数.
后面 $n$ 行为数对, 每行包含一个数对 $(a_i, b_i)$.
输出格式
第一行输出 $t$, 即所求序列长度.
接着输出满足题意的序列 $i_1, i_2, \cdots, i_t$.
说明/提示
$2 \leq n \leq 3 \cdot 10^5$
$1 \leq a_i, b_i \leq 2 \cdot n$
并且所有 $a_i, b_i$ 两两不相等.
### 样例解释
样例 1: $1 < 7 > 3 < 5 > 2 < 10$.
样例 2: $6 > 1 < 3 > 2 < 5 > 4$.