Cod sursa(job #3133601)

Utilizator daria_lapadusLapadus Daria daria_lapadus Data 26 mai 2023 11:47:30
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define zero(x) (x&(x^(x-1)))
using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");

int arb[15005],a[15005],n,m,i,x,y,z;

void achita(int poz,int val)
{
    int i;
    for(i=poz; i<=n; i+=zero(i)) arb[i]-=val;
}
int interogare(int l,int r)
{
    int s1=0,s2=0,i;
    for(i=l-1; i>0; i-=zero(i)) s1+=arb[i];
    for(i=r; i>0; i-=zero(i)) s2+=arb[i];
    return (s2-s1);
}
int main()
{
    f>>n>>m;
    for(i=1; i<=n; i++) f>>a[i], a[i]+=a[i-1];
    for(i=1; i<=n; i++)
        arb[i]=a[i]-a[i-zero(i)];

    for(i=1; i<=m; i++)
    {
        f>>x>>y>>z;
        if(x==0) achita(y,z);
        else g<<interogare(y,z)<<"\n";
    }
    g.close();
    return 0;
}