Префиксные суммы
Всем привет! Недавно решил повторить темы которые проходил, одной из них оказались префиксные суммы. Нашел контест на codeforces (https://codeforces.com/group/1rv4rhCsHp/contest/319055/problem/A), первая задача:
вот мой код, и на 44 тесте говорит что превышен лимит времени
#include <iostream>
#include <vector>
#define ll long long
using namespace std;
vector <ll> prefixSum(vector<ll> a) {
vector<ll> b(a.size() + 1,0);
for (ll i = 0; i < a.size(); ++i) {
b[i+1] = b[i] + a[i];
}
return b;
}
int main() {
ll n,l,r,q;
cin >> n;
vector <ll> arr(n+1,0);
for (ll i = 0 ; i < n; ++i) {
cin >> arr[i];
}
cin >> q;
vector <ll> prefArr = prefixSum(arr);
for (ll i = 0; i < q; ++i) {
cin >> l >> r;
cout << prefArr[r] - prefArr[l-1] << '\n';
}
return 0;
}