Pagini recente » Cod sursa (job #1167184) | Cod sursa (job #1395809) | Cod sursa (job #1820831) | Cod sursa (job #1761979) | Cod sursa (job #1254671)
#include <fstream>
using namespace std;
ifstream is("datorii.in");
ofstream os("datorii.out");
int n, m;
int aib[15000];
int v, z, x, s, s1, s2;
void Initialize(int poz, int v)
{
for ( int i = poz; i <= n; i += i & -i )
aib[i] += v;
}
void Update(int poz, int v)
{
for ( int i = poz; i <= n; i += i & -i )
aib[i] -= v;
}
int Sum(int poz, int sum)
{
for ( int i = poz; i > 0; i -= i & -i )
sum += aib[i];
return sum;
}
int main()
{
is >> n >> m;
for ( int i = 1; i <= n; ++i )
{
is >> v;
Initialize(i, v);
}
for ( int i = 1; i <= m; ++i )
{
is >> x;
if ( x == 0 )
{
is >> z >> s;
Update(z, s);
}
if ( x == 1 )
{
is >> s1 >> s2;
os << Sum(s2, 0) - Sum(s1-1, 0) << '\n';
}
}
is.close();
os.close();
return 0;
}