Cerința
Fie N un numar natural și un șir de N numere naturale V[1], V[2], …, V[N]. Pentru M întrebări de forma (i,j), să se calculeze suma termenilor V[i], V[i + 1], …, V[j].
Date de intrare
Pe prima linie a fișierului sume2.in se găsește un număr natural N. Pe urmatoarea linie sunt N numere naturale, reprezentând valorile șirului V. Pe a treia linie se găsește un număr natural M reprezentând numărul de întrebări, iar pe următoarele M linii câte o pereche de numere (i,j), reprezentând o întrebare pentru care se cere să se calculeze suma V[i] + V[i + 1] + ... + V[j].
Date de ieșire
Pe prima linie din fişierul sume2.out se găseşte răspunsul la prima întrebare din fişierul de intrare, pe a doua linie se găseşte răspunsul la cea de-a doua întrebare, și așa mai departe.
Restricții și precizări
1 ≤ N ≤ 100.0001 ≤ M ≤ 500.0000 ≤ V[i] ≤ 1.000.000.000- Pentru 30% dintre teste
N, M ≤ 1.000
Exemplu
sume2.in
4 1 2 3 4 2 1 3 2 4
sume2.out
6 9
Explicație
Suma elementelor de pe pozițiile de la 1 la 3 este 6.
Suma elementelor de pe pozițiile de la 2 la 4 este 9.
#include <bits/stdc++.h>
using namespace std;
ifstream cin("sume2.in");
ofstream cout("sume2.out");
int main()
{
long long n , m , x , y , a[100001] , s[100001]={0};
cin >> n;
for(int i = 1 ; i <= n ; ++i)
{
cin >> a[i];
s[i]=s[i-1]+a[i];
}
cin >> m;
for(int i = 0 ; i < m ; ++i)
{
cin >> x >> y;
cout << s[y]-s[x - 1] << endl;
}
}