Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n, q; cin >> n >> q; //n элементов вектора, q запросов
- vector <int> v(n);
- for (int i = 0; i<n; i++) cin >> v[i];
- vector <int> sumV(n); //Вектор, хранящий сумму до n-ого элемента
- int sum = 0;
- for (int i = 0; i<n; i++)
- {
- sum += v[i];
- sumV[i] = sum;
- }
- vector <int> ans; //Сюда сохраним ответы
- while (q--)
- {
- int l, r; //Границы, где нужно вывести сумму элементов из [l, r]
- cin >> l >> r;
- if (l-2 < 0) ans.push_back(sumV[r-1]);
- else ans.push_back(sumV[r-1] - sumV[l-2]);
- //Необходимая сумма элементов получается из разности суммы
- //элементов из [1, r] и [1, l-1]. Нужно помнить, что индексы начинаются с 0
- }
- for (int i = 0; i<ans.size(); i++) cout << ans[i] << " ";
- }
- /* Приведу тест. Четыре элементы. Четыре запроса.
- 4 4
- 5 3 2 11
- 1 3
- 1 1
- 4 4
- 1 4
- Вывод: 10 5 11 21
- */
Add Comment
Please, Sign In to add comment