fbpx

Problema #299 – SumeSecv – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dă un vector cu n elemente numere naturale, numerotate de la 1 la n, și m perechi de indici (i,j), cu 1≤i<j≤n. Să se determine, pentru fiecare pereche (i,j), suma elementelor din secvenţa determinată de i şi j.

Date de intrare

Fişierul de intrare sumesecv.in conţine pe prima linie numărul n, iar pe a doua linie cele n elemente ale vectorului. Următoarea linie conține numărul m, iar următoarele m linii câte o pereche de indici i j.

Date de ieşire

Fişierul de ieşire sumesecv.out va conţine pe prima linie cele m sume determinate, separate prin câte un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
  • elementele vectorului vor fi mai mici decât 1000
  • 1 ≤ m ≤ 100

Exemplu

sumesecv.in

10
5 5 1 3 6 4 1 2 10 6 
3
5 8 
2 6 
6 10 

sumesecv.out

13 19 23 
#include <bits/stdc++.h>

using namespace std;

ifstream cin("sumesecv.in");
ofstream cout("sumesecv.out");

int main()
{
    int n, m;
    cin >> n;
    int a[101], rez[101];
    for(int i = 1; i <= n; ++i)
        cin >> a[i];
    int x, y;
    cin >> m;
    for(int i = 1; i <= m; ++i){
        cin >> x >> y;
        int sum = 0;
        for(int j = x; j <= y; ++j)
            sum += a[j];
        rez[i] = sum;
    }

    for(int i = 1; i <= m; ++i)
        cout << rez[i] << ' ';

    return 0;
}
Comentarii

S-ar putea sa iti placa