Cod sursa(job #2626011)

Utilizator Gradinaru_StefanStef 2 Gradinaru_Stefan Data 6 iunie 2020 11:25:16
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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

int n, v[15001];

int Beq(int x)
{
    return x & (-x);
}

void update ( int i, int val ){
    for (int j = i; j<= n; j +=Beq(i))
        v[j] += val;
}

int suma ( int i){
    int s = 0;
    for (int j = i; j > 0; j -=Beq(i))
        s += v[j];
    return s;
}



int main()
{   int m, op, x, y, nr;
    f >> n >> m;
    for (int i = 1; i <= n; ++i ){
        f >> nr;
        update ( i, nr);
    }
    for (int i = 0; i < m; i++ ){
        f >> op >> x >> y;
        if ( op == 0 )
            update ( x, - y );
        if(op==1)
            g << suma ( y ) - suma ( x - 1 ) <<"\n";
    }

    return 0;
}