Pagini recente » Cod sursa (job #247334) | Cod sursa (job #2350666) | Cod sursa (job #2880625) | Cod sursa (job #1227235) | Cod sursa (job #1695438)
#include <fstream>
#include <iostream>
#define size 3
using namespace std;
fstream f,g;
int d[15001],qt,t,v,p,q,n,m,i,j,k,l,o;
int main()
{
f.open("datorii.in",ios_base::in);
g.open("datorii.out",ios_base::out);
f>>n>>m;
for(k=n/size+!!(n%size),i=0;i<k;i++)for(j=1;j<=size;j++)
{
if(i*size+j<=n)f>>l;
else l=0;
d[i*size+j]=l;
if(j!=1)d[i*size+j]+=d[i*size+j-1];
}
for(i=0;i<m;i++)
{
f>>qt;
if(qt==0)
{
f>>t>>v;
if(t%size==1)
{
d[t]-=v;
t++;
}
for(j=t;j%size!=1;j++)d[j]-=v;
}
else
{
f>>p>>q;
if(p/size+!!(p%size)!=q/size+!!(q%size))
{
o=0;
if(p%size!=1)
{
o+=d[(p/size+!!(p%size))*size]-d[p-1];
p=(p/size+!!(p%size))*size+1;
}
if(q%size!=0)
{
o+=d[q];
q=q/size*size;
}
for(j=p+size-1;j<=q;j+=size)o+=d[j];
}
else
{
if(p%size==1)o=d[q];
else o=d[q]-d[p-1];
}
g<<o<<'\n';
}
}
}