CF159E Zebra Tower
题目描述
小 Janet 喜欢玩立方体。实际上,只要是多彩的,无论是立方体还是四维超立方体她都喜欢玩。每个立方体由两个参数描述——颜色 $c_{i}$ 和大小 $s_{i}$。一个“斑马塔”是由恰好两种颜色的立方体组成的塔。此外,塔中相邻立方体的颜色必须交替(相邻立方体的颜色不能相同)。斑马塔至少要有两个立方体。除此之外没有其他限制。下图给出了一个斑马塔的例子。

斑马塔的高度是构成塔的所有立方体的大小之和。请帮助小 Janet 用现有的立方体搭建一个高度尽可能大的斑马塔。
输入格式
第一行为整数 $n$($2 \leq n \leq 10^{5}$),表示立方体的数量。接下来 $n$ 行,每行描述一个立方体,包括两个用空格分隔的整数 $c_{i}$ 和 $s_{i}$($1 \leq c_{i}, s_{i} \leq 10^{9}$),分别代表第 $i$ 个立方体的颜色和大小。保证至少有两个不同颜色的立方体。
输出格式
输出斑马塔的最大高度,格式如下:
第一行输出塔的高度;
第二行输出构成塔的立方体的数量;
第三行输出这些立方体的编号(按从下到上的顺序,以空格分隔,编号即为立方体在输入中出现的顺序,从 1 到 $n$)。
如果存在多个高度相同的斑马塔,可以输出其中任意一个。
请不要在 C++ 中使用 %lld 读写 64 位整数。建议使用 cin/cout 流或者 %I64d。
说明/提示
由 ChatGPT 5 翻译