Pagini recente » Cod sursa (job #1832027) | Cod sursa (job #280735) | Cod sursa (job #2792845) | Cod sursa (job #2143429) | Cod sursa (job #852904)
Cod sursa(job #852904)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
int main(){
int n,m,a[15001],b[15001],s=0;
int nr=0,i;
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
int op, st, dr,t,v;
int sqr;
sqr=(int)sqrt(double(n));
for(i=0;i<n;i++){
f>>a[i];
s=s+a[i];
if((i+1)%sqr==0||(i+1)==n){
b[nr]=s;
nr++;
s=0;
}
}
for(int j=1;j<=m;j++){
f>>op>>st>>dr;
if(op==1){
st--;
dr--;
int sum=0;
for(i=st/sqr;i<=dr/sqr;i++)
sum=sum+b[i];
for(i=st-1;i>=(st/sqr)*sqr;i--)
sum=sum-a[i];
for(i=dr+1;i<((dr/sqr)+1)*sqr;i++)
sum=sum-a[i];
g<<sum<<'\n';
}
else
if(op==0){
st--;
int t=st/sqr;
a[st]=a[st]-dr;
b[t]=b[t]-dr;
}
}
return 0;
}