Cod sursa(job #1628901)

Utilizator UngureanuRuxandraUngureanu Andreea Ruxandra UngureanuRuxandra Data 4 martie 2016 11:24:38
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,s,i,val,poz,x,y,semn,a[150000001];
void achitare(int nod, int st, int dr)
{int mij;
 if(st==dr)
    a[nod]=a[nod]+val;
 else{
    mij=(st+dr)/2;
    if(mij>=poz)
    achitare(nod*2,st,mij);
    else
        achitare(nod*2+1,mij+1,dr);
      a[nod]=a[nod*2]+a[nod*2+1];
    }
 }
void  interogare(int nod,int st,int dr)
{int mij;
 if(x<=st&&dr<=y)
    s=s+a[nod];
 else{
    mij=(st+dr)/2;
     if(x<=mij)
        interogare(nod*2,st,mij);
     if(y>mij)
        interogare(nod*2+1,mij+1,dr);
 }

}
int main()
{f>>n>>m;
 for(i=1;i<=n;++i)
 {f>>val;
  poz=i;
  achitare(1,1,n);

 }
    for(i=1;i<=m;++i)
    {f>>semn>>x>>y;
      if(semn==0)
      { val=y;
        poz=x;
        achitare(1,1,n);

      }
        else
        {s=0;
        interogare(1,1,n);
            g<<s<<'\n';

        }
    }
    return 0;
}