Cod sursa(job #2667922)

Utilizator PulpysimusJurjiu Tandrau Darius Stefan Pulpysimus Data 4 noiembrie 2020 06:54:15
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
#define zeros(x) (x^(x-1))&x
int AIB[15001],n,m;
void UpdateValue( int val, int poz)
{
    for(;poz<=n;poz+=zeros(poz))
    AIB[poz]+=val;
}
int Query(int poz)
{
    int s=0;
    for(;poz>=1;poz-=zeros(poz))
        s+=AIB[poz];
    return s;
}
int main()
{
    int x;
f>>n>>m;
for(int i=1;i<=n;i++)
    f>>x,UpdateValue(x,i);
int a,b,c;
for(int i=1;i<=m;i++)
{
    f>>c>>a>>b;
    if(c==1) g<<Query(b)-Query(a-1)<<"\n";
    else UpdateValue(-b,a);

}
}