Pagini recente » Cod sursa (job #3343104) | Cod sursa (job #2487650) | Cod sursa (job #707720) | Cod sursa (job #1505767) | Cod sursa (job #3308213)
#include <iostream>
#include <queue>
#include <algorithm>
#include <set>
#include <map>
#include <stack>
#include <vector>
#include <string>
#include <deque>
#include <unordered_map>
#include <unordered_set>
#include <cmath>
#include <iomanip>
using namespace std;
#define ll long long
int n, m;
vector<int> values;
vector<int> sums;
void ReadData() {
scanf("%d", &n);
scanf("%d", &m);
int sum = 0;
for(int i = 0; i < n; ++i){
int val = 0;
scanf("%d", &val);
values.push_back(val);
sum += val;
sums.push_back(sum);
}
}
void Solve() {
for(int i = 0; i < m; ++i){
int ops = 0;
int a = 0;
int b = 0;
scanf("%d", &ops);
if (ops == 0)
{
scanf("%d", &a);
scanf("%d", &b);
values[a - 1] += b;
int index = a - 1;
while (index < sums.size()){
sums[index]+= b;
index++;
}
}
else if (ops == 1)
{
scanf("%d", &a);
scanf("%d", &b);
if (a == 1){
cout << sums[b - 1] << "\n";
} else {
cout << sums[b - 1] - sums[a - 2]<< "\n";
}
}
else {
scanf("%d", &a);
auto it = lower_bound(sums.begin(), sums.end(), a);
if(it != sums.end() && *it== a){
int index = it - sums.begin();
cout << index + 1 << "\n";
} else {
cout <<"-1\n";
}
}
}
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
freopen("aib.in","r",stdin);
freopen("aib.out","w",stdout);
int t = 1;
// cin >> t; // Uncomment for multiple test cases
while (t--) {
ReadData();
Solve();
}
return 0;
}