Pagini recente » Cod sursa (job #290043) | Cod sursa (job #2509) | Cod sursa (job #1998120) | Cod sursa (job #348129) | Cod sursa (job #3172852)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sequencequery.in");
ofstream g("sequencequery.out");
#define NMAX 100000
int n,m,V[NMAX+5],A[4*NMAX+5],x,y,sol;
void build(int nod,int st,int dr)
{
if(st==dr)
A[nod]=V[st];
else
{
int mij=(st+dr)/2;
build(2*nod,st,mij);
build(2*nod+1,mij+1,dr);
A[nod]=A[2*nod]+A[2*nod+1];
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
{
f>>V[i];
}
while(f>>x>>y)
{
build(1,x,y);
int dr=y,st=x;
sol=A[1];
while(V[dr]<0&&dr>st)
{
sol-=V[dr];
dr--;
}
while(V[st]<0&&st<dr)
{
sol-=V[st];
st++;
}
g<<sol<<endl;
}
return 0;
}