Pagini recente » Cod sursa (job #1184359) | Cod sursa (job #913214) | Cod sursa (job #1279492) | Cod sursa (job #1133902) | Cod sursa (job #1259252)
#include <fstream>
using namespace std;
ifstream is("datorii.in");
ofstream os("datorii.out");
int aib[15001];
int n, m;
void Update(int pos, int val);
void Achitare(int pos, int val);
int Interogare(int pos);
int main()
{
is >> n >> m;
int val;
for ( int i = 1; i <= n; ++i )
{
is >> val;
Update(i, val);
}
int op, p1, p2;
for ( int i = 1; i <= m; ++i )
{
is >> op;
if ( op )
{
is >> p1 >> p2;
os << Interogare(p2) - Interogare(p1 - 1) << '\n';
}
else
{
is >> p1 >> val;
Achitare(p1, val);
}
}
is.close();
os.close();
return 0;
}
void Update(int pos, int val)
{
for ( int i = pos; i <= n; i += i & -i )
aib[i] += val;
}
void Achitare(int pos, int val)
{
for ( int i = pos; i <= n; i += i & -i )
aib[i] -= val;
}
int Interogare(int pos)
{
int s = 0;
for ( int i = pos; i; i -= i & -i )
s += aib[i];
return s;
}