Cod sursa(job #2625964)

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

using namespace std;

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

int n, v[15001];

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

int suma ( int i ){
    int s = 0;
    while ( i >= 1 ){
        s += v[i];
        i -= (i & ( -i ) );
    }
    return s;
}

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

    return 0;
}