CF1650C.Weight of the System of Nested Segments
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
On the number line there are m points, i -th of which has integer coordinate xi and integer weight wi . The coordinates of all points are different, and the points are numbered from 1 to m .
A sequence of n segments [l1,r1],[l2,r2],…,[ln,rn] is called system of nested segments if for each pair i,j ( 1≤i<j≤n ) the condition li<lj<rj<ri is satisfied. In other words, the second segment is strictly inside the first one, the third segment is strictly inside the second one, and so on.
For a given number n , find a system of nested segments such that:
- both ends of each segment are one of m given points;
- the sum of the weights 2⋅n of the points used as ends of the segments is minimal.
For example, let m=8 . The given points are marked in the picture, their weights are marked in red, their coordinates are marked in blue. Make a system of three nested segments:
- weight of the first segment: 1+1=2
- weight of the second segment: 10+(−1)=9
- weight of the third segment: 3+(−2)=1
- sum of the weights of all the segments in the system: 2+9+1=12
System of three nested segments
输入格式
The first line of input data contains an integer t ( 1≤t≤104 ) —the number of input test cases.
An empty line is written before each test case.
The first line of each test case contains two positive integers n ( 1≤n≤105 ) and m ( 2⋅n≤m≤2⋅105 ).
The next m lines contain pairs of integers xi ( −109≤xi≤109 ) and wi ( −104≤wi≤104 ) — coordinate and weight of point number i ( 1≤i≤m ) respectively. All xi are different.
It is guaranteed that the sum of m values over all test cases does not exceed 2⋅105 .
输出格式
For each test case, output n+1 lines: in the first of them, output the weight of the composed system, and in the next n lines output exactly two numbers — the indices of the points which are the endpoints of the i -th segment ( 1≤i≤n ). The order in which you output the endpoints of a segment is not important — you can output the index of the left endpoint first and then the number of the right endpoint, or the other way around.
If there are several ways to make a system of nested segments with minimal weight, output any of them.
输入输出样例
输入#1
3 3 8 0 10 -2 1 4 10 11 20 7 -1 9 1 2 3 5 -2 3 6 -1 2 1 3 3 -1 2 4 4 0 8 2 2 5 5 -1 3 -2 1 0 -2 0 -5 -3
输出#1
12 2 6 5 1 7 8 10 1 6 5 2 3 4 -6 5 1 4 2
说明/提示
The first test case coincides with the example from the condition. It can be shown that the weight of the composed system is minimal.
The second test case has only 6 points, so you need to use each of them to compose 3 segments.