Cod sursa(job #2330015)

Utilizator BogdanAlexandruBogdan-Alexandru Dig BogdanAlexandru Data 27 ianuarie 2019 19:13:38
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>

using namespace std;
FILE *f,*g;
int AIB[15002],N,M;
void CreateAIB(int P,int X)
{
    for(;P<=N;P+=(P&(-P)))AIB[P]+=X;
}
void Read()
{
    int i=1,X;
    fscanf(f,"%d %d",&N,&M);
    for(;i<=N;i++)
    {
        fscanf(f,"%d",&X);
        CreateAIB(i,X);
    }
}
int SUM(int X)
{
    int S=0;
    for(;X>0;X-=(X&(-X)))
        S+=AIB[X];
    return S;
}
void Solve()
{
    int operation,T,V;
    while(M)
    {
        M--;
        fscanf(f,"%d %d %d",&operation,&T,&V);
        if(!operation)
        {
            CreateAIB(T,V*(-1));
            continue;
        }
        fprintf(g,"%d\n",SUM(V)-SUM(T-1));
    }
}
int main()
{
    f=fopen("datori.in","r");g=fopen("datori.out","w");
    Read();
    Solve();
    return 0;
}