Cod sursa(job #2410229)

Utilizator Vlad_NituNitu Vlad-Petru Vlad_Nitu Data 19 aprilie 2019 20:25:50
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
#define DIM 15005
using namespace std;
ifstream f ("datorii.in") ;
ofstream g ("datorii.out") ;
int N , M , x , a , b , cer;
int AIB[DIM] ;
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) << '\n';
    }
    f.close();
    g.close();
    return 0;

}