Pagini recente » Borderou de evaluare (job #1008087) | Cod sursa (job #1132703) | Cod sursa (job #2155577) | Cod sursa (job #2814118) | Cod sursa (job #3134270)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int suma(const vector<int> &valori, int l, int r) {
int suma = 0;
for (int i = l; i <= r; i++) {
suma += valori[i];
}
return suma;
}
void update(vector<int> &valori, int l, int r, int valoare) {
for (int i = l; i <= r; i++) {
valori[i] += valoare;
}
}
int main() {
ifstream f1("../datorii.in");
ofstream f2("../datorii.out");
int N, M;
f1 >> N >> M;
vector<int> valori(N);
for (int i = 0; i < N; i++) {
f1 >> valori[i];
}
for (int i = 0; i < M; i++) {
int operatie, arg1, arg2;
f1 >> operatie >> arg1 >> arg2;
if (operatie == 0) {
update(valori, arg1 - 1, arg1 - 1, -arg2);
} else if (operatie == 1) {
int sum = suma(valori, arg1 - 1, arg2 - 1);
f2 << sum << endl;
}
}
f1.close();
f2.close();
return 0;
}