Cod sursa(job #1251581)

Utilizator dan.seremetDan Seremet dan.seremet Data 29 octombrie 2014 18:00:20
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<fstream>
using namespace std;
const int nmax=15001;
int n, m, v[nmax];

ifstream u ("datorii.in");
ofstream w ("datorii.out");

void update(int pos, int val)
{for(; pos<=n; pos+=((pos&(pos-1))^pos))
    v[pos]+=val;
}

int querry(int pos)
{int s=0;
 for(; pos; pos-=((pos&(pos-1))^pos))
    s+=v[pos];
 return s;
}

int main()
{u>>n>>m;
 int i, p, q, a;
 bool o;
 for(i=1; i<=n; i++)
    {u>>a;
     update(i, a);
    }
 for(i=1; i<=m; i++)
    {u>>o>>p>>q;
     if(!o) update(p, -q);
     else w<<querry(q)-querry(p-1)<<"\n";
    }
 return 0;
}