Cod sursa(job #1140379)

Utilizator costyrazvyTudor Costin Razvan costyrazvy Data 11 martie 2014 22:47:42
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#define ub(x) (x&(-x))
using namespace std;
int key,x,y,AIB[20001],i,n,m;
void add(int poz,int x)
{
   int i;
   for(i=poz;i<=n;i+=ub(i))
       AIB[i]+=x;
}

int sum(int poz)
{
  int i,s=0;
  for(i=poz;i>0;i-=ub(i))
     s+=AIB[i];
  return s;
}
int main()
{
    ifstream f("datorii.in");
    ofstream g("datorii.out");
    f>>n>>m;
    for (i=1;i<=n;i++) f>>x,add(i,x);
    for (i=1;i<=m;i++)
    {
        f>>key>>x>>y;
        if (key==0)
           add(x,-y);
        if (key==1)
           g<<sum(y)-sum(x-1)<<'\n';
    }
    f.close();
    g.close();
    return 0;
}