Pagini recente » Cod sursa (job #1575890) | Cod sursa (job #534091) | Cod sursa (job #747024) | Cod sursa (job #109909) | Cod sursa (job #1722169)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream f("aib.in");
ofstream g("aib.out");
int N,M;
int aib[100001];
void update(int val, int x)
{
do
{
aib[x]+=val;
x+= x&(-x);
}
while(x<=N);
}
int query(int x)
{
int suma=0;
while(x!=0)
{
suma+=aib[x];
x-=x&(-x);
}
return suma;
}
int main()
{
f>>N>>M;
int x;
for(int i=1; i<=N; ++i){
f>>x;
update(x,i);
}
int tip,a ,b;
for(int i=1; i<=M; ++i){
f>>tip;
if(tip==1){
f>>a>>b;
g<<query(b)-query(a-1)<<"\n";
}
else{
f>>a>>b;
update(b,a);
}
}
return 0;
}