Pagini recente » Cod sursa (job #243044) | Cod sursa (job #1976089) | Cod sursa (job #2703656) | Cod sursa (job #432822) | Cod sursa (job #1242220)
#include <fstream>
using namespace std;
ifstream ka("datorii.in");
ofstream ki("datorii.out");
const int N_MAX = 15000;
int aib[N_MAX + 1];
int n, m, x, y;
char c;
int zeros(int t)
{
return (t ^ (t-1)) & t;
}
void modifica(int x, int val)
{
for(int i = x; i <= n; i += zeros(i))
aib[i] += val;
}
int cauta(int a)
{
int sum = 0;
for(int i = a; i > 0; i -= zeros(i))
sum += aib[i];
return sum;
}
int main()
{
ka >> n >> m;
for(int i = 1; i <= n; i++)
{
ka >> x;
modifica(i, x);
}
for(int i = 1; i <= m; i++)
{
ka >> c >> x >> y;
if(c == '0')
modifica(x, -y);
else
{
if(x > y)
swap(x, y);
ki << cauta(y) - cauta(x - 1) << '\n';
}
}
}