Pagini recente » Cod sursa (job #1522039) | Cod sursa (job #1506659) | Cod sursa (job #2800057) | Cod sursa (job #1342529) | Cod sursa (job #1594307)
#include <fstream>
#include <vector>
using namespace std;
ifstream is("datorii.in");
ofstream os("datorii.out");
using VI = vector<int>;
int n, m;
VI a;
void Read();
void Update(int poz, int val);
int Sum(int poz);
int main()
{
Read();
int t, x, y;
while ( m-- )
{
is >> t >> x >> y;
if ( !t )
Update(x, -y);
else
os << Sum(y) - Sum(x - 1) << "\n";
}
is.close();
os.close();
return 0;
}
int Sum(int poz)
{
int s = 0;
for ( int i = poz; i; i -= i & -i )
s += a[i];
return s;
}
void Update(int poz, int val)
{
for ( int i = poz; i <= n; i += i & -i )
a[i] += val;
}
void Read()
{
is >> n >> m;
a = VI(n + 1);
int x;
for ( int i = 1; i <= n; ++i )
{
is >> x;
Update(i, x);
}
}