Cod sursa(job #2649758)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 16 septembrie 2020 11:11:33
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,a,tip,x,y,aib[15001];
int ub(int a)
{
    return (a^(a-1))&a;
}
void scad(int x,int val)
{
    for(int i=x; i<=n; i+=ub(i))
    {
        aib[i]-=val;
    }
}
int calc(int x)
{
    int sol=0;
    for(int i=x; i>0; i-=ub(i))
    {
        sol+=aib[i];
    }
    return sol;
}
int main()
{
    f>>n>>m;
    for(int i=1; i<=n; i++)
    {
        f>>a;
        scad(i,-a);
    }
    for(int i=1; i<=m; i++)
    {
        f>>tip>>x>>y;
        if(tip==0)scad(x,y);
        else g<<calc(y)-calc(x-1)<<'\n';

    }
    return 0;
}