Cod sursa(job #2375286)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 8 martie 2019 00:04:48
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
#define zero(x) x&(-x)
using namespace std ;
ifstream in ("datorii.in") ;
ofstream out ("datorii.out") ;
int n , q , aib [ 15005 ] , i , x , a , b ;
void update (int pos , int val)
{
    for (;pos<=n;pos+=zero(pos)) aib [ pos ] += val ;
}
int sum ( int pos )
{
    int s = 0 ;
    for ( ; pos ; pos -= zero(pos) )    s += aib [ pos ] ;
    return s ;
}
int main ()
{
    in >> n >> q ;
    for ( i = 1 ; i <= n ; ++ i )
    {
        in >> x ;
        update( i , x ) ;
    }
    while ( q -- )
    {
        in >> x >> a >> b ;
        if ( x == 0 )   update ( a , -b ) ;
        else            out << sum(b) - sum(a-1) << '\n' ;
    }
}