题目背景
本题为交互题,但在此请提交完整程序。
题目描述
有 N 座山横着排成一行,从左到右编号为从 0 到 N−1。山的高度为 Hi(0≤i≤N−1)。每座山的顶上恰好住着一个人。
你打算举行 Q 个会议,编号为从 0 到 Q−1。会议 j(0≤j≤Q−1) 的参加者为住在从山 Lj 到山 Rj(包括 Lj 和 Rj)上的人(0≤Lj≤Rj≤N−1)。对于该会议,你必须选择某个山 x 做为会议举办地(Lj≤x≤Rj)。举办该会议的成本与你的选择有关,其计算方式如下:
你想要用最低的成本来举办每个会议。
注意,所有的参会者将在每次会议后回到他们自己的山;所以一个会议的成本不会受到先前会议的影响。
输入格式
输入的第一行包含两个正整数 N 和 Q,其意义见题目描述。
第二行包含 N 个正整数 H0,H1,…,HN−1,表示这些山的高度。
第 3+j 行(0≤j≤Q−1),每行两个整数 Lj,Rj,表示这些会议的参会者的范围。
输出格式
共 Q 行,第 1+j 行(0≤j≤Q−1)一个整数 Cj,表示举办会议 j 的最低的可能成本。
4 2
2 4 3 5
0 2
1 3
10
12
3 3
2 1 2
0 0
0 1
0 2
2
3
5
5 1
1000000000 1000000000 1 1000000000 1000000000
0 4
4000000001
15 10
10 71 84 33 6 47 23 25 52 64 70 31 22 31 2
5 10
3 7
0 13
8 12
0 0
1 3
7 13
1 13
10 12
1 1
281
180
828
263
10
201
364
744
123
71
提示
样例#1解释
会议 j=0 有 Lj=0 和 Rj=2,所以将由住在山 0、1和2上的人参加。如果山 0 被选做举办地,会议 0 的成本计算如下:
- 住在山 0 上的参会者的成本是 max{H0}=2。
- 住在山 1 上的参会者的成本是 max{H0,H1}=4。
- 住在山 2 上的参会者的成本是 max{H0,H1,H2}=4。
- 因此,会议 0 的成本是 2+4+4=10。
不可能以更低的成本来举办会议 0 了,因此会议 0 的最低成本是 10。
会议 j=1 有 Lj=1 和 Rj=3,因此将由住在山1、2 和 3 上的人参加。如果山 2 被选做举办地,会议 1 的成本计算如下:
- 住在山 1 上的参会者的成本是 max{H1,H2}=4。
- 住在山 2 上的参会者的成本是 max{H2}=3。
- 住在山 3上的参会者的成本是 max{H1,H2,H3}=5。
- 因此,会议 1 的成本是 4+3+5=12。
不可能以更低的成本来举办会议 1 了,所以会议 1 的最低成本是 12。
限制条件
- 1≤N≤750 000
- 1≤Q≤750 000
- 1≤Hi≤109
- 0≤Lj≤Rj≤R−1(0≤j≤Q−1)
- (Lj,Rj)=(Lk,Rk)(0≤j<k≤Q−1)
子任务
- (4 分) N≤3000,Q≤10;
- (15 分) N≤5000,Q≤5000;
- (17 分) N≤105,Q≤105,Hi≤2(0≤i≤N−1);
- (24 分) N≤105,Q≤105,Hi≤20(0≤i≤N−1);
- (40分) 没有附加限制。
Author
Riku Kawasaki (Japan)
Source
IOI 2018 D2T3