Pagini recente » Cod sursa (job #1551323) | Cod sursa (job #1471894) | Cod sursa (job #939329) | Cod sursa (job #932845) | Cod sursa (job #2222578)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int NMAX = 15005;
int fn[NMAX],n;
void add(int val, int k)
{
while (k<=n)
{
fn[k]+=val;
k += k&-k;
}
}
int sum(int k)
{
int s = 0;
while (k>0)
{
s+=fn[k];
k -= k&-k;
}
return s;
}
int main()
{
int m;
in >> n >> m;
for (int i = 1; i<=n; i++)
{
int x;
in >> x;
add(x,i);
}
for (int i = 1; i<=m; i++)
{
int t;
in >> t;
if (t == 0)
{
int k,val;
in >> k >> val;
add(-val,k);
}
else if (t == 1)
{
int st,dr;
in >> st >> dr;
out << sum(dr)-sum(st-1) << "\n";
}
}
}