Cod sursa(job #2289685)

Utilizator Digori04Digori Parascovia Digori04 Data 24 noiembrie 2018 23:54:44
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define indice(j) (j&(-j))
using namespace std ;
ifstream fin("datorii.in");
ofstream fout ("datorii.out");
int N , M , AIB[15010] , X , cerinta , B , C ;
void update (int i , int x) 
{
    int j ;
    for (j = i ; j <= N ; j += indice(j))
        AIB[j] += x;
}
int querry (int i) 
{
    int j , s = 0 ;
    for (j = i ; j >= 1 ; j -= indice(j))
        s += AIB[j];
    return s;
 
}
int main()
{
    fin >> N >> M ;
    for (int i = 1 ; i <= N ; i ++ )
        {
            fin >> X ;
            update(i,X) ;
        }
    for (int i = 1 ; i <= M ; i ++)
    {
            fin >> cerinta >> B >> C;
            if (cerinta == 0) {update(B , -C);}
            else {fout<< querry(C) - querry(B-1) << '\n';     }
    }
    return 0 ;
 
}