給定一個數組 A 和一些查詢 Li , Ri,求數組中第 Li 至第 Ri 個元素之和。
小藍覺得這個問題很無聊,于是他想重新排列一下數組,使得最終每個查詢結果的和盡可能地大。小藍想知道相比原數組,所有查詢結果的總和最多可以增加多少?
輸入第一行包含一個整數 n。
第二行包含 n 個整數 A1, A2, · · · , An,相鄰兩個整數之間用一個空格分隔。
第三行包含一個整數 m 表示查詢的數目。
接下來 m 行,每行包含兩個整數 Li、Ri ,相鄰兩個整數之間用一個空格分隔。
5 1 2 3 4 5 2 1 3 2 5
4
原來的和為 6 + 14 = 20,重新排列為 (1, 4, 5, 2, 3) 后和為 10 + 14 = 24,增加了 4。
對于 30% 的評測用例,n, m ≤ 50 ;
對于 50% 的評測用例,n, m ≤ 500 ;
對于 70% 的評測用例,n, m ≤ 5000 ;
對于所有評測用例,1 ≤ n, m ≤ 105,1 ≤ Ai ≤ 106,1 ≤ Li ≤ Ri ≤ 106 。
第十三屆藍橋杯大賽軟件賽省賽 Java 研究生組 | |
---|---|
C題 | |
D題 | |
E題 | |
F題 | |
G題 | |
H題 | |
I題 | |
J題 |
注意事項:
1. 不要使用 package 語句。
2. 選手代碼的主類名必須為:Main,否則會被判為無效代碼。
3. 如果程序中引用了類庫,在提交時必須將 import 語句與程序的其他部分同時提交。
4. 只允許使用 Java 自帶的類庫。
5. 提交時,注意選擇使用Java語言。
本比賽結束依舊可以訓練,見題集2022年第十三屆藍橋杯大賽軟件類省賽Java研究生組真題