Pagini recente » Cod sursa (job #2149244) | Cod sursa (job #2170709) | Cod sursa (job #3301951) | Borderou de evaluare (job #725996) | Cod sursa (job #3343151)
#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int aib[15001];
int n;
void add( int idx, int val )
{
for ( int i = idx; i <= n; i += ( i & ( -i ) ) )
aib[i] += val;
}
int compute ( int idx )
{
int sol = 0;
for ( int i = idx; i > 0; i -= ( i & ( -i ) ) )
sol += aib[i];
return sol;
}
int main()
{
int m;
f >> n >> m;
for ( int i = 1; i <= n; i ++ )
{
int x;
f >> x;
add ( i, x );
}
while ( m -- )
{
int tip, x, y;
f >> tip >> x >> y;
if ( tip == 0 )
add ( x, -y );
else g << compute(y) - compute(x - 1) << '\n';
}
return 0;
}