Cod sursa(job #2736679)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 3 aprilie 2021 19:21:23
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#define nl '\n'
using namespace std;
ifstream f ( "datorii.in" );
ofstream g ( "datorii.out" );
const int NMAX = 15001;
int aib[NMAX];
int N;
void Update ( int poz, int val )
{
    for ( int i = poz; i <= N; i += i & ( -i ) )
        aib[i] += val;
}
int Sum(int poz)
{
    int sum=0;
    while(poz>0)
    {
        sum+=aib[poz];
        poz-=poz&(-poz);
    }
    return sum;
}
int main()
{
    int M;
    f >> N >> M;

    for ( int i = 1; i <= N; i++ )
    {
        int nr;
        f >> nr;
        Update ( i, nr );
    }
    while(M--)
    {
        int tip;
        f>>tip;
        if(tip==0)
        {
            int T,V;
            f>>T>>V;
            Update(T,-V);
        }
        else
        {
            int P,Q;
            f>>P>>Q;
            g<<Sum(Q)-Sum(P-1)<<nl;
        }
    }
    return 0;
}