Cod sursa(job #3134119)
| Utilizator | Data | 28 mai 2023 15:36:24 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.81 kb |
#include<stdio.h>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,i,x,y,z;
long v[15001],r[15001],j,m,sum1,sum2;
int main()
{
in>>n>>m;
v[0]=0;
for(i=1;i<=n;i++)
{
in >> v[i];
v[i]+=v[i-1];
j=i-(i&(-i));
r[i]=v[i]-v[j];}
for(j=1;j<=m;j++)
{
in>>x>>y>>z;
if(x==0)
{
while(y<=n)
{
r[y]-=z;
y+=(y&(-y));}}
else
{
sum1=sum2=0;
while(z>0)
{
sum1+=r[z];
z-=(z&(-z));}
y--;
while(y>0)
{
sum2+=r[y];
y-=(y&(-y));}
out<<sum1-sum2<< " ";
}
}
return 0;
}