Cod sursa(job #2751155)

Utilizator VladCaloVlad Calomfirescu VladCalo Data 14 mai 2021 13:49:12
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
//
//  main.cpp
//  datorii
//
//  Created by Vlad Calomfirescu on 14.05.2021.
//

#include <iostream>
#include <fstream>
 
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
 
int x[100005];
int n;
int q;
void update(int poz,int val)
{
    int i=poz;
    while(i<=n)
    {
        x[i]+=val;
        i+=(i & (- i));
 
    }
}
int query(int poz)
{
    int i=poz;
    int val=0;
    while(i>0)
    {
        val+=x[i];
        i-=(i & (-i));
    }
    return val;
 
 
}
int main()
{
    fin>>n>>q;
    for(int i=1;i<=n;++i)
    {
        int val;
        fin>>val;
        update(i,val);
    }
    for(int qu=1;qu<=q;++qu)
    {
        int tip,a,b;
        fin>>tip>>a>>b;
        if(tip==0)
            update(a,-b);
        else
        {
            fout<<query(b)-query(a-1)<<"\n";
        }
    }
     return 0;
 
}