Pagini recente » Cod sursa (job #1193160) | Cod sursa (job #2906203) | Cod sursa (job #1287142) | Cod sursa (job #661582) | Cod sursa (job #2031352)
#include <fstream>
#define DIM 15010
using namespace std;
int n, m;
int aib[DIM];
void Update(int poz, int val)
{
while(poz <= n)
{
aib[poz] += val;
poz += poz & (-poz);
}
}
int Query(int poz)
{
int sum = 0;
while(poz > 0)
{
sum += aib[poz];
poz -= poz & (-poz);
}
return sum;
}
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f >> n >> m;
for (int i = 1;i <= n;++i)
{
int x;
f >> x;
Update(i, x);
}
for (int i = 1;i <= m;++i)
{
int id;
f >> id;
switch(id)
{
case 0:
{
int t, v;
f >> t >> v;
Update(t, -v);
break;
}
case 1:
{
int p, q;
f >> p >> q;
p = Query(p - 1);
q = Query(q);
g << q - p << "\n";
break;
}
}
}
f.close();
g.close();
return 0;
}