Cod sursa(job #658003)

Utilizator penultim_oVijiala Tudor Gabriel penultim_o Data 7 ianuarie 2012 19:18:00
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int v[15100],m,n;

void act(int poz, int val)
{
    for(int i=poz;i<=n;i+=(i&(-i)))
        v[i]+=val;
}

int suma(int poz)
{
    int t=0;
    for(int i=poz;i>0;i-=(i&(-i))) t+=v[i];
    return t;
}

void rez()
{
    int o,x,y;
    for(int i=0;i<m;i++)
    {
        in >> o >> x >> y;
        if(o) out << suma(y) - suma(x-1) << endl;
        else act(x, -y);
    }
}

void citeste()
{
    in >> n >> m;
    int x;
    for(int i=1;i<=n;i++)
    {
        in >> x;
        act(i,x);
    }
}



int main()
{
    citeste();
    rez();
    return 0;
}