CF1148D.Dirty Deeds Done Dirt Cheap

普及+/提高

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given nn pairs of integers (a1,b1),(a2,b2),…,(an,bn)(a_1, b_1), (a_2, b_2), \ldots, (a_n, b_n). All of the integers in the pairs are distinct and are in the range from 11 to 2⋅n2 \cdot n inclusive.

Let's call a sequence of integers x1,x2,…,x2kx_1, x_2, \ldots, x_{2k} good if either

  • x1<x2>x3<…<x2k−2>x2k−1<x2kx_1 \lt x_2 \gt x_3 \lt \ldots \lt x_{2k-2} \gt x_{2k-1} \lt x_{2k}, or
  • x1>x2<x3>…>x2k−2<x2k−1>x2kx_1 \gt x_2 \lt x_3 \gt \ldots \gt x_{2k-2} \lt x_{2k-1} \gt x_{2k}.

You need to choose a subset of distinct indices i1,i2,…,iti_1, i_2, \ldots, i_t and their order in a way that if you write down all numbers from the pairs in a single sequence (the sequence would be ai1,bi1,ai2,bi2,…,ait,bita_{i_1}, b_{i_1}, a_{i_2}, b_{i_2}, \ldots, a_{i_t}, b_{i_t}), this sequence is good.

What is the largest subset of indices you can choose? You also need to construct the corresponding index sequence i1,i2,…,iti_1, i_2, \ldots, i_t.

给你 nn 对整数 (a1,b1),(a2,b2),…,(an,bn)(a_1, b_1), (a_2, b_2), \ldots, (a_n, b_n)。所有出现在这些数对中的整数互不相同,且均在 11 到 2⋅n2 \cdot n(含端点)的范围内。

我们称一个整数序列 x1,x2,…,x2kx_1, x_2, \ldots, x_{2k} 是好的,当且仅当它满足以下两种模式之一:

  • x1<x2>x3<…<x2k−2>x2k−1<x2kx_1 \lt x_2 \gt x_3 \lt \ldots \lt x_{2k-2} \gt x_{2k-1} \lt x_{2k},或
  • x1>x2<x3>…>x2k−2<x2k−1>x2kx_1 \gt x_2 \lt x_3 \gt \ldots \gt x_{2k-2} \lt x_{2k-1} \gt x_{2k}。

你需要选出一组互不相同的下标 i1,i2,…,iti_1, i_2, \ldots, i_t,并确定它们的顺序,使得将对应数对中的数按如下方式拼接成一个序列(即序列形如 ai1,bi1,ai2,bi2,…,ait,bita_{i_1}, b_{i_1}, a_{i_2}, b_{i_2}, \ldots, a_{i_t}, b_{i_t}),该序列是“好的”。

你最多能选出多少个下标?同时,还需构造出对应的下标序列 i1,i2,…,iti_1, i_2, \ldots, i_t。

输入格式

The first line contains single integer nn (2≤n≤3⋅1052 \leq n \leq 3 \cdot 10^5) — the number of pairs.

Each of the next nn lines contain two numbers — aia_i and bib_i (1≤ai,bi≤2⋅n1 \le a_i, b_i \le 2 \cdot n) — the elements of the pairs.

It is guaranteed that all integers in the pairs are distinct, that is, every integer from 11 to 2⋅n2 \cdot n is mentioned exactly once.

第一行包含一个整数 nn(2≤n≤3⋅1052 \leq n \leq 3 \cdot 10^5)—— 表示数对的个数。

接下来的 nn 行,每行包含两个数:aia_i 和 bib_i(1≤ai,bi≤2⋅n1 \le a_i, b_i \le 2 \cdot n)—— 表示第 ii 个数对的两个元素。

保证所有数对中的整数互不相同,即从 11 到 2⋅n2 \cdot n 的每个整数恰好出现一次。

输出格式

In the first line print a single integer tt — the number of pairs in the answer.

Then print tt distinct integers i1,i2,…,iti_1, i_2, \ldots, i_t — the indexes of pairs in the corresponding order.

第一行输出一个整数 tt —— 答案中数对的个数。

然后输出 tt 个互不相同的整数 i1,i2,…,iti_1, i_2, \ldots, i_t —— 按相应顺序排列的数对的下标。

输入输出样例

  • 输入#1

    5
    1 7
    6 4
    2 10
    9 8
    3 5

    输出#1

    3
    1 5 3
  • 输入#2

    3
    5 4
    3 2
    6 1

    输出#2

    3
    3 2 1

说明/提示

The final sequence in the first example is 1<7>3<5>2<101 \lt 7 \gt 3 \lt 5 \gt 2 \lt 10.

The final sequence in the second example is 6>1<3>2<5>46 \gt 1 \lt 3 \gt 2 \lt 5 \gt 4.

第一个示例中的最终序列为 1<7>3<5>2<101 \lt 7 \gt 3 \lt 5 \gt 2 \lt 10。

第二个示例中的最终序列为 6>1<3>2<5>46 \gt 1 \lt 3 \gt 2 \lt 5 \gt 4。

输入解题思路,AI测评打分。不知道怎么写?

首页