Cod sursa(job #3256403)

Utilizator Cezar1432Dogaru Cezar Cezar1432 Data 14 noiembrie 2024 15:27:10
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int aib[1001],v[1001];
int n,m,op,c1,c2;
void adun(int x, int val){
for(int i=x;i<=n;i+=i&(-i)){
        aib[i]+=val;

}
}
void suma(int st, int dr){
    int sdr=0,sst=0;
    for(int i=dr;i>=1;i-=i&(-i)){
            sdr+=aib[i];

    }

    for(int i=st-1;i>=1;i-=i&(-i)){
            sst+=aib[i];

    }
    g<<sdr-sst<<'\n';
}
int main()
{
    f>>n>>m;
    for(int i=1;i<=n;i++)
    {

        int h;
        f>>h;
        adun(i, h);
    }
    for(int i=1;i<=m;i++)
    {

        f>>op;
        if(op==1){
            int st,dr;
            f>>st>>dr;
            suma(st,dr);
        }
        else if(op==0){
            int zi, s;
            f>>zi>>s;
            adun(zi,-s);
        }

            }

    return 0;
}