Cod sursa(job #405978)

Utilizator APOCALYPTODragos APOCALYPTO Data 1 martie 2010 00:26:23
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<iostream>
#include<fstream>
using namespace std;
int aib[15001],n,m;
ofstream fout("datorii.out");
void update(int i,int x)
{int j;
for(j=i;j<=n;j+=j&-j)
	aib[j]+=x;
}
int query(int poz)
{int i,s=0;
for(i=poz;i;i-=i&-i)
	s+=aib[i];
  return s;  
}





int main()
{int i,x,y,z;
ifstream fin("datorii.in");
fin>>n>>m;
for(i=1;i<=n;i++)
	 {fin>>x;
      update(i,x);}
for(i=1;i<=m;i++)
	 {fin>>x;
     
	 if(x==0)
		 {fin>>y>>z;
	     update(y,-z);}
		 else
		 {fin>>y>>z;
		 fout<<query(z)-query(y-1)<<"\n";}
	 }
fin.close();
	
	fout.close();
	return 0;
}