Pagini recente » Cod sursa (job #315516) | Cod sursa (job #4800) | Cod sursa (job #1871587) | Cod sursa (job #1571125) | Cod sursa (job #2722937)
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n, m, aib[15005];
void Add(int p, int x)
{
for(; p <= n; p += (p & -p))
aib[p] += x;
}
void Update(int p, int x)
{
for(; p <= n; p += (p & -p))
aib[p] -= x;
}
int Query(int p)
{
int s = 0;
for(; p > 0; p -= (p & -p))
s += aib[p];
return s;
}
int main()
{
int val;
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
fin >> val;
Add(i, val);
}
int c, x,y;
for(int i = 1; i <= m; i++)
{
fin >> c >> x >> y;
if(c)
fout << Query(y) - Query(x - 1) << "\n";
else Update(x,y);
}
return 0;
}