Pagini recente » Cod sursa (job #879156) | Cod sursa (job #1004388) | Cod sursa (job #2282506) | Cod sursa (job #1963242) | Cod sursa (job #480347)
Cod sursa(job #480347)
01.#include <cstdio>
02.#define lsb(x) ((x ^ (x - 1)) & x)
03.int n, m, a[15001];
04.long long c[15001];
05.FILE *in, *out;
06.void read()
07.{
08.
int i;
09.
in = fopen("datorii.in", "r");
10.
fscanf(in, "%d%d", &n, &m);
11.
for(i=1; i<=n; ++i)
12.
fscanf(in, "%d", a+i);
13.}
14.
15.void solve()
16.{
17.
int code, i, j;
18.
out=fopen("datorii.out", "w");
19.
for(i=1; i<=n; ++i)
20.
{
21.
for(j=i-(lsb(i))+1; j<=i; j++)
22.
if(j>=0)
23.
c[i]+=a[j];
24.
}
25.
26.
for(i=0; i<m; ++i)
27.
{
28.
int c1, c2;
29.
fscanf(in, "%d%d%d", &code, &c1, &c2);
30.
if(code==0)
31.
{
32.
while(c1<=n && c1>=0)
33.
{
34.
c[c1]-=c2;
35.
c1+=(lsb(c1));
36.
}
37.
}
38.
if(code==1)
39.
{
40.
long long s1=0, s2=0;
41.
c1--;
42.
while(c1>=1 && c1<=n)
43.
{
44.
s1+=c[c1];
45.
c1-=(lsb(c1));
46.
}
47.
while(c2>=1 && c2<=n)
48.
{
49.
s2+=c[c2];
50.
c2-=(lsb(c2));
51.
}
52.
fprintf(out, "%lld\n", s2-s1);
53.
}
54.
55.
}
56.}
57.
58.
59.int main ()
60.{
61.
read();
62.
solve();
63.
return 0;
64.}