Zebra Tower
题意翻译
### 题目描述
给定 $n$ 个物品,每个物品有一个颜色 $c_i$ 和大小 $s_i$ ,你需要找出一些物品排成一排,使得只有两种颜色且两种颜色交替排列,要最大化选出物品的 $\sum s_i$
### 输入描述
第一行仅有一个整数 $n (1 \leq n \leq 10 ^ 5)$ ,接下来的 $n$ 行,依次给出 n 个物品的颜色信息和大小信息。每行包含两个数 $c_i$和 $s_i ( 1 \leq c_i,s_i \leq 10^9$。
### 输出描述
以以下形式输出最大高度斑马塔的描述。第一行输出塔的高度,第二行输出构成塔的方块数量,第三行按照它们在塔中从底部到顶部的顺序输出方块的索引,以空格分隔。假设方块的编号从 $1$ 到 $n$ 按照它们在输入中的顺序排列。
如果存在多个最大高度的斑马塔,可以输出其中任意一个。
题目描述
Little Janet likes playing with cubes. Actually, she likes to play with anything whatsoever, cubes or tesseracts, as long as they are multicolored. Each cube is described by two parameters — color $ c_{i} $ and size $ s_{i} $ . A Zebra Tower is a tower that consists of cubes of exactly two colors. Besides, the colors of the cubes in the tower must alternate (colors of adjacent cubes must differ). The Zebra Tower should have at least two cubes. There are no other limitations. The figure below shows an example of a Zebra Tower.
![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF159E/f33171cfff84c23150eb82e578a37293690a12de.png)A Zebra Tower's height is the sum of sizes of all cubes that form the tower. Help little Janet build the Zebra Tower of the maximum possible height, using the available cubes.
输入输出格式
输入格式
The first line contains an integer $ n $ ( $ 2<=n<=10^{5} $ ) — the number of cubes. Next $ n $ lines contain the descriptions of the cubes, one description per line. A cube description consists of two space-separated integers $ c_{i} $ and $ s_{i} $ ( $ 1<=c_{i},s_{i}<=10^{9} $ ) — the $ i $ -th cube's color and size, correspondingly. It is guaranteed that there are at least two cubes of different colors.
输出格式
Print the description of the Zebra Tower of the maximum height in the following form. In the first line print the tower's height, in the second line print the number of cubes that form the tower, and in the third line print the space-separated indices of cubes in the order in which they follow in the tower from the bottom to the top. Assume that the cubes are numbered from 1 to $ n $ in the order in which they were given in the input.
If there are several existing Zebra Towers with maximum heights, it is allowed to print any of them.
Please do not use the %lld specificator to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specificator.
输入输出样例
输入样例 #1
4
1 2
1 3
2 4
3 3
输出样例 #1
9
3
2 3 1
输入样例 #2
2
1 1
2 1
输出样例 #2
2
2
2 1