Pagini recente » Cod sursa (job #2938012) | Cod sursa (job #2328051) | Cod sursa (job #1795561) | Cod sursa (job #2434223) | Cod sursa (job #1076384)
#include <cstdio>
using namespace std;
int i,n,a[6000001],inceput,sfarsit,MAX,q,sum,x,y,m,j;
bool ok;
int main()
{
freopen("squencequery.in","r",stdin);
freopen("squencequery.out","w",stdout);
scanf("%d %d",&n,&m);
sum=-200000000;
for(i=1; i<=n; i++)
{
scanf("%d",&a[i]);
}
for(j=1;j<=m;j++)
{ sum=-200000000;
q=0;
inceput=0;
sfarsit=0;
MAX=-2000000;
scanf("%d %d",&x, &y);
for(i=x; i<=y; i++)
{ ok=true;
if(a[i]==0) {ok=false;}
if(sum<0)
{
sum=a[i];
q=i;
}
else
{
sum+=a[i];
}
if(ok){
if(sum>MAX)
{
MAX=sum;
inceput=q;
sfarsit=i;
}
}
else{if(sum>=MAX)
{
MAX=sum;
inceput=q;
sfarsit=i;
}}
}
printf("%d\n",MAX);
}
return 0;
}