Pagini recente » Cod sursa (job #1950882) | Cod sursa (job #1419338) | Cod sursa (job #1543795) | Cod sursa (job #747796) | Cod sursa (job #1036461)
#include<fstream>
#include<algorithm>
#include<cmath>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,v[15001],i,j,k,s,sum[1000]={0},rad,nr=1,a,b,sax,a1,b1;
bool op;
int main()
{
f>>n>>m;
rad=sqrt(n);
//g<<rad<<'\n';
for(i=1;i<=n;i++)
{
f>>v[i];
if(i>nr*rad)
nr++;
sum[nr]+=v[i];
}
// for(i=1;i<=nr;i++)
// g<<sum[i]<<" ; ";
// g<<'\n';
for(i=1;i<=m;i++)
{
f>>op>>a>>b;
if(op==0)
{
v[a]-=b;
sum[(a-1)/rad+1]-=b;
// for(k=1;k<=n;k++)
// g<<v[k]<<" ";
// g<<'\n';
}
else
{
sax=0;
a1=(a-1)/rad+1;
b1=(b-1)/rad+1;
for(j=(a-1)/rad+1;j<=(b-1)/rad+1;j++)
sax+=sum[j];
for(j=a-1;(j-1)/rad+1==a1;j--)
sax-=v[j];//g<<"- "<<v[j]<<" ";
for(j=b+1;(j-1)/rad+1==b1;j++)
sax-=v[j];//g<<"- "<<v[j]<<" ";
// g<<'\n';
// for(k=1;k<=n;k++)
// g<<v[k]<<" ";
// g<<'\n';
g<<sax<<'\n';
}
}
f.close();g.close();
return 0;
}