Pagini recente » Cod sursa (job #2946211) | Cod sursa (job #2515115) | Cod sursa (job #2407202) | Cod sursa (job #719472) | Cod sursa (job #395264)
Cod sursa(job #395264)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 15000
typedef long long int64;
typedef unsigned pint;
void deschide()
{
freopen("datorii.in","rt",stdin);
freopen("datorii.out","wt",stdout);
}
int a[MAX+1],n,m;
void add(int,int);
void citeste(void) {
int val,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;++i) {
scanf("%d",&val);
add(i,val);
}
}
int sum(int st) {
int s1=0;
while(st) {
s1+=a[st];
st-=st^(st-1)&st;
}
return s1;
}
void add(int ind,int val) {
while(ind<=n) {
a[ind]+=val;
ind+=ind^(ind-1)&ind;
}
}
void solve(void) {
int k,ind,v;
for(long i=0;i<m;++i)
{
scanf("%d %d %d\n",&k,&ind,&v);
if(k) printf("%d\n",sum(v)-sum(ind-1));
else add(ind,-v);
}
fclose(stdin);
fclose(stdout);
}
int main(void) {
deschide();
citeste();
solve();
return 0;
}