Pagini recente » Cod sursa (job #995699) | Cod sursa (job #460457) | Cod sursa (job #343905) | Cod sursa (job #2154260) | Cod sursa (job #2502727)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
#define for0(AAA, BBB) for(ll AAA = 0; AAA < BBB; ++AAA)
#define for1(AAA, BBB) for(ll AAA = 1; AAA <= BBB; ++AAA)
#define zeros(x) ( (x ^ (x - 1)) & x )
#ifndef ONLINE_JUDGE
#else
#define in cin
#define out cout
#endif
typedef long long ll;
typedef unsigned long long ull;
const ll nmx = 2e5+ 5;
const ll inf = 1<<30;
const ll MOD = 1e9 + 7;
const ll dx[4] = {-1, 0, 1, 0};
const ll dy[4] = { 0, 1, 0, -1};
const string YES = "YES";
const string NO = "NO";
bool _comp(const pair<ll,ll> &A, const pair<ll,ll> &B) {
return A.first < B.first || (A.first == B.first && A.second < B.second);
}
ll N, M, a[nmx], aib[nmx];
void Add(ll x, ll quantity)
{
for (int i = x; i <= N; i += zeros(i))
aib[i] += quantity;
}
ll Compute(ll x)
{
ll ret = 0;
for (int i = x; i > 0; i -= zeros(i))
ret += aib[i];
return ret;
}
ll sum(ll left, ll right) {
return Compute(right) - Compute(left - 1);
}
int main() {
ios::sync_with_stdio(0);
in>>N>>M;
for(int i = 1; i <= N; ++i) {
in>>a[i];
Add(i, a[i]);
}
while(M--) {
ll op, p, q;
in>>op>>p>>q;
if(op == 0) {
Add(p, -q);
}
else {
out<<sum(p, q)<<"\n";
}
}
return 0;
}