O(n²) Stress Test 1 Range Sum (Random)
Submit solution
Points:
100
Time limit:
2.0s
Memory limit:
256M
Author:
Problem type
Allowed languages
C, C++
You are given \(n\) numbers \(a_1, a_2, \ldots, a_n\) together with \(n\) queries. The \(i\)-th query provides two integers \(x_i, y_i\) with \(x_i \le y_i\); you must report the sum of all elements whose indices lie between \(x_i\) and \(y_i\) inclusive.
Input
The first line contains an integer \(n\) (\(1 \le n \le 10^5\)).
The second line contains \(n\) integers \(a_1, a_2, \ldots, a_n\) (\(-10^4 \le a_i \le 10^4\)).
Each of the next \(n\) lines contains two integers \(x_i, y_i\) (\(1 \le x_i \le y_i \le n\)).
The test cases are generated by the following program:
#include "testlib.h"
using namespace std;
const int MAX_V = 10000;
const int MIN_V = -MAX_V;
int main(int argc, char* argv[]){
registerGen(argc, argv, 1);
int n = atoi(argv[1]);
cout << n << endl;
for(int i = 0; i < n; i++) {
cout << rnd.next(MIN_V, MAX_V);
if(i + 1 < n) { cout << ' '; }
else { cout << endl; }
}
for(int i = 0; i < n; i++) {
int x = rnd.next(1, n);
int y = rnd.next(1, n);
if(x > y) {
swap(x, y);
}
cout << x << ' ' << y << endl;
}
return 0;
}
Output
For each query, output a single integer equal to the requested sum.
Sample Input 1
5
-2493 -7467 2309 -4055 8970
4 5
5 5
2 5
1 3
2 4
Sample Output 1
4915
8970
-243
-7651
-9213