Pagini recente » Betasah | Cod sursa (job #1773000) | Cod sursa (job #1754948) | Cod sursa (job #2447820) | Cod sursa (job #1234656)
#include <cstdio>
#include <cmath>
using namespace std;
int n, m, x, y, z, a, s[125], v[15001], k = 1;
void solve1(){
int t = y / a, p = z / a, sum = 0;
for(int i = t + 1; i <= p; ++i){
sum += s[i];
}
if(z % a)
for(int i = p * a + 1; i <= z; ++i)
sum += v[i];
if(y % a == 0)
sum += v[t * a];
else
for(int i = t * a + 1; i < y; ++i)
sum -= v[i];
printf("%d\n", sum);
}
void solve2(){
int t = y / a;
if(y % a)
++t;
s[t] -= z;
v[y] -= z;
}
void read(){
scanf("%d %d ", &n, &m);
for(int i = 1; i <= n; ++i)
scanf("%d ", &v[i]);
a = sqrt(n);
for(int i = 1; i <= n; ++i){
s[k] += v[i];
if(i % a == 0)
++k;
}
if(n % a == 0) --k;
for(int i = 1; i <= m; ++i){
scanf("%d %d %d ", &x, &y, &z);
if(x)
solve1();
else
solve2();
}
}
int main(){
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
read();
}