Cod sursa(job #1221151)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 19 august 2014 17:33:15
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
FILE *f,*g;
int a,b,c,j,s,i,v[15001],n,m;
void addup(int x,int q)
{   while (x<=n)
    {   v[x]-=q;
        x=x+zeros(x);
    }
}
long exe(int x)
{
int s=0;
    while (x>0)
    {   s+=v[x];
        x=x-zeros(x);
    }
    return s;
}
int main()
{
f=fopen("datorii.in","r");
g=fopen("datorii.out","w");
    fscanf(f,"%d%d",&n,&m);
    for (i=1;i<=n;i++)
    {int ok;fscanf(f,"%d",&ok);addup(i, -1 * ok);}

    for (i=1;i<=m;i++)
    {fscanf(f,"%d%d%d",&a,&b,&c);
    if (a==0)
    addup(b,c);
    else
    {s=0;//for (j=b;j<=c;j++)s+=v[j];
    fprintf(g,"%d\n",exe(c)-exe(b-1));
    }
    }
    return 0;
}