Pagini recente » Cod sursa (job #491390) | Cod sursa (job #1710265) | Cod sursa (job #410918) | Cod sursa (job #445835) | Cod sursa (job #2446869)
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, tree[15100];
void Update(int poz, int val)
{
while(poz <= n)
{ tree[poz] += val;
int lastBit = poz & (-poz);
poz += lastBit;
}
}
int getSum(int poz)
{
int sum = 0;
while(poz)
{ sum += tree[poz];
int lastBit = poz & (-poz);
poz -= lastBit;
}
return sum;
}
int main()
{
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 t;
f >> t;
if(!t)
{ int val, poz;
f >> poz >> val;
Update(poz, -val);
}
else
{ int p, q;
f >> p >> q;
g << getSum(q) - getSum(p-1) << '\n';
}
}
return 0;
}