Cod sursa(job #2410490)

Utilizator mareadevarIonescu Andrei mareadevar Data 20 aprilie 2019 09:13:15
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define DIM 15005
using namespace std;
ifstream f ("datorii.in") ;
ofstream g ("datorii.out") ;
int N, M, cer, a, b;
int AIB[DIM], x;
void Update (int poz, int val)
{for (int i = poz ; i <= N ; i += i&(-i))
        AIB[i] += val;
        return ;
}
int Query(int poz)
{int sum = 0 ;
for (int i = poz ; i >= 1 ; i -= i & (-i))
sum += AIB[i] ;
return sum ;
}
int main()
{f >> N >> M ;
    for (int i = 1 ; i <= N ; ++i)
    {
    f >> x ;
Update(i,x) ;
    }
    for (int i = 1 ; i <= M ; ++i)
    {
    f >> cer >> a >> b;
    if (cer == 0)
Update(a,-b) ;
        else g << Query(b) - Query(a-1) <<endl;
    }
    return 0;

}