题目大概意思就是:
输入一个数n
接下来输入n个数
输入一个数t,表示接下来t组数据(type l r),type为1时,输出那n个数原来序列的第l个数到第r个数的和,type为2时,输出那n个数排成的升序列中的第l个数到第r个数的和。
输入:
5
2 6 1 4 3
2
1 2 3
2 1 3
输出
6
7
我想的方法,先把数据读入保存进2个数组,第一个数组保存原序列,第二个数组保存排序的序列。
然后根据type的情况去选择数组,用for循环去累加第l个数到第r个数。
当时一直超时过不了,一直挺困惑没有思路,我跑的时间在1600ms,题目要求最多1300ms。n和t都限定小于100000,输入的数字限定在1e9以内。我是java写的,有人也用java写的,1000过的,所以应该也不是语言问题。