Pagini recente » Cod sursa (job #1209457) | Cod sursa (job #1988527) | Cod sursa (job #310346) | Cod sursa (job #1923266) | Cod sursa (job #3254404)
#include<bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
typedef long long ll;
const int N = 15e4;
const int B = 500;
int v[N];
int v2[B];
int main(){
int n,q;
cin>>n>>q;
for(int i = 0;i < n;i++){
cin>>v[i];
}
int sqrtn = (int)sqrt(n);
for(int i = 0;i < n;i+=sqrtn){
for(int j = 0;i + j < n && j < sqrtn;j++){
v2[i/sqrtn]+=v[i + j];
}
}
for(int i = 0;i < q;i++){
int cer, a, b;
cin>>cer>>a>>b;
if(cer == 1){
a--;b--;
int x = a;
int ans = 0;
while(x <= b){
if(x%sqrtn == 0 && x + sqrtn <= b + 1){
ans+=v2[x/sqrtn];
x+=sqrtn;
}else{
ans+=v[x];
x++;
}
}
cout<<ans<<'\n';
}else{
a--;
v[a]-=b;
v2[a/sqrtn]-=b;
}
}
return 0;
}