Pagini recente » Cod sursa (job #1471239) | Cod sursa (job #1460621) | Cod sursa (job #2790908) | Cod sursa (job #2442493) | Cod sursa (job #1231768)
#include <fstream>
#define lmax 15005
#define bin(x) x&(-x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m;
int v[lmax];
inline void ad(int x,int poz)
{
for (int i=poz;i<=n;i+=bin(i))
v[i]+=x;
}
inline void achitare(int x,int poz)
{
for (int i=poz;i<=n;i+=bin(i))
v[i]-=x;
}
inline int suma(int poz)
{
int su=0;
for (int i=poz;i>=1;i-=bin(i))
su+=v[i];
return su;
}
int main()
{
int i,x,y,t,poz;
f>>n>>m;
for (i=1;i<=n;i++)
{
f>>x;
ad(x,i);
}
for (i=1;i<=m;i++)
{
f>>t;
if (t==0)
{
f>>poz>>x;
achitare(x,poz);
}
if (t==1)
{
f>>x>>y;
g<<suma(y)-suma(x-1)<<'\n';
}
}
f.close();
g.close();
}