Skip to content

Instantly share code, notes, and snippets.

@Thiago4532
Created June 4, 2019 18:39
Show Gist options
  • Save Thiago4532/a191eb0d7dc21468c22d5a275c08efe6 to your computer and use it in GitHub Desktop.
Save Thiago4532/a191eb0d7dc21468c22d5a275c08efe6 to your computer and use it in GitHub Desktop.
// Ideias 06 - Soma de Prefixos
// Thiago Mota
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int n, q, v[maxn], pref[maxn];
int main() {
cin >> n >> q;
for(int i = 1; i <= n; i++) {
cin >> v[i]; // Lendo o vetor
}
pref[1] = v[1]; // Prefixo da posição 1 é ele mesmo
for(int i = 2; i <= n; i++) {
pref[i] = pref[i-1] + v[i]; // O prefixo de i é o prefixo de i-1 adicionado do elemento na posição i
}
for(int i = 1; i <= q; i++) {
int l, r;
cin >> l >> r;
if(l == 1) {
cout << pref[r] << "\n"; // Se o l for 1, podemos apenas imprimir o prefixo.
}else {
cout << pref[r] - pref[l-1] << "\n"; // Senão, iremos imprimir a soma de [1, r] - [1, l-1]
}
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment