Pagini recente » Cod sursa (job #373884) | Cod sursa (job #1079099) | Cod sursa (job #1573001) | Cod sursa (job #436591) | Cod sursa (job #2982628)
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n, q, a[100010];
void cit(int p, int val)
{
for (int i = p; i <= n; i += i & (-i))
a[i] += val;
}
void upd(int p, int val)
{
for (int i = p; i <= n; i += i & (-i))
a[i] -= val;
}
int sum(int poz)
{
int val = 0;
for (int i = poz; i > 0; i -= i & (-i))
val += a[i];
return val;
}
int main()
{
in >> n >> q;
for (int i = 1; i <= n; i++)
{
int x;
in >> x;
cit(i,x);
}
for (int i = 1; i <= q; i++)
{
int tip;
in >> tip;
if (tip == 0)
{
int poz,val;
in >> poz >> val;
upd(poz, val);
}
if (tip == 1)
{
int st,dr;
in >> st>>dr;
out<<sum(dr)-sum(st-1)<<'\n';
}
}
return 0;
}