Pagini recente » Cod sursa (job #1365760) | Cod sursa (job #1906010) | Cod sursa (job #3032538) | Cod sursa (job #1620992) | Cod sursa (job #653768)
Cod sursa(job #653768)
/***************************************************
* Author: Alexandru Palcuie
* Country: Romania
* Email: alex [dot] palcuie [at] gmail [dot] com
* Website: http://palcu.blogspot.com/
* Year: 2011
****************************************************/
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
//Constants
const int N = 15001;
//Global Vars
int n, nOperatii, v[N];
//Structs
//Solve Functions
void update(int poz, int val){
while(poz <= n){
v[poz] += val;
poz += (poz & -poz);
}
}
int query(int poz){
int sol = 0;
while(poz > 0){
sol += v[poz];
poz -= (poz & -poz);
}
return sol;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
#endif
scanf("%d%d", &n, &nOperatii);
for(int i=1, x; i<=n; i++){
scanf("%d", &x);
update(i, x);
}
int c, x, y;
while(nOperatii--){
scanf("%d%d%d", &c, &x, &y);
if (c==0){
update(x, -y);
}
else
printf("%d\n", query(y) - query(x-1));
}
return 0;
}