Pagini recente » Cod sursa (job #163816) | Cod sursa (job #369499) | Cod sursa (job #937092) | Cod sursa (job #1303126) | Cod sursa (job #402072)
Cod sursa(job #402072)
#include<fstream>
using namespace std;
int n, m, i, x, tip, poz, a, b, v[100005];
void adauga(int poz, int val)
{
while (poz <= n)
{
v[poz] += val;
poz += (poz^(poz-1)) & poz;
}
}
int sum(int poz)
{
int rez = 0;
while (poz > 0)
{
rez += v[poz];
poz -= (poz^(poz-1)) & poz;
}
return rez;
}
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for (i = 1; i <= n; i ++)
{f>>x;
adauga(i,x);
}
for (i = 1; i <= m; i ++)
{
f>>tip;
if (tip == 0)
{
f>>poz>>x;
adauga(poz, -x);
continue;
}
if (tip == 1)
{
f>>a>>b;
g<<sum(b)-sum(a-1)<<"\n";
}
}
return 0;
}