Cod sursa(job #2582221)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 16 martie 2020 15:18:05
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

#define N 15001

using namespace std;

ifstream f ( "datorii.in" );
ofstream g ( "datorii.out" );

int n, aib[N];

void update ( int x, int val ){
    while ( x <= n ){
        aib[x] += val;
        x += ( x & ( -x ) );
    }
}

int quary ( int x ){
    int S = 0;
    while ( x >= 1 ){
        S += aib[x];
        x -= ( x & ( -x ) );
    }
    return S;
}

int main()
{   int m, i, op, x, y, a;
    f >> n >> m;
    for ( i = 1; i <= n; i++ ){
        f >> a;
        update ( i, a );
    }
    for ( i = 1; i <= m; i++ ){
        f >> op >> x >> y;
        if ( op == 0 )
            update ( x, -y );
        else
            g << quary ( y ) - quary ( x - 1 ) << '\n';
    }
    return 0;
}