Pagini recente » Borderou de evaluare (job #1246109) | Borderou de evaluare (job #1231195) | Monitorul de evaluare | Borderou de evaluare (job #1025788) | Cod sursa (job #855754)
Cod sursa(job #855754)
#include<fstream>
using namespace std;
ifstream f("datorii.in"); ofstream g("datorii.out");
const int NMAX = 15001;
int n, m, c[NMAX];
inline void update(int, int);
inline int query(int);
inline int LSB(int q)
{
return q & (-q);
}
int main()
{
f>>n>>m;
int x, y, t;
for(int i = 1; i <= n; ++i)
{
f>>x;
for(int j = i; j <= n; j += LSB(j)) c[j] += x;
}
for(; m; --m)
{
f>>t;
if(!t)
{
f>>x>>y;
update(x, y);
}
else
{
f>>x>>y;
g<<query(max(x, y)) - query(min(x, y)- 1)<<'\n';
}
}
}
inline void update(int poz, int k)
{
for(; poz <= n; poz += LSB(poz)) c[poz] -= k;
}
inline int query(int poz)
{
int sum = 0;
for(; poz > 0; poz -= LSB(poz)) sum += c[poz];
return sum;
}