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.000
1 ≤ M ≤ 500.000
0 ≤ 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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Sume2:
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
ifstream fin("sume2.in");
ofstream fout("sume2.out");
long long S[100004];
int main() {
int N;
fin >> N;
int x;
for(int i = 1; i <= N; ++i) {
fin >> x;
S[i] = S[i - 1] + (long long) x;
}
int M;
fin >> M;
int y;
for(int i = 1; i <= M; ++i) {
fin >> x >> y;
fout << S[y] - S[x - 1] << '\n';
}
fin.close();
fout.close();
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1933 Sume2
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1933 Sume2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!