Cod sursa(job #1608414)

Utilizator ciocan_catalinCiocan Catalin - Iulian ciocan_catalin Data 22 februarie 2016 02:46:35
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,M,aib[15005];
void Update(int p, int x)
{
    while(p <= n)
    {
        aib[p]+=x;
        p += (p&(-p));
    }
}
int Query(int p)
{
    int s = 0;
    while(p > 0)
    {
        s+=aib[p];
        p -= (p&(-p));
    }
    return s;
}
int main()
{
    int i,x,op,t,v;
    fin>>n>>M;
    for(i = 1; i <= n; i++)
    {
        fin>>x;
        Update(i,x);
    }
    while(M--)
    {
        fin>>op>>t>>v;
        if(op==0) Update(t,-v);
        else fout<<(Query(v)-Query(t-1))<<"\n";
    }
    fout.close();
    return 0;
}