Pagini recente » Cod sursa (job #3127353) | Cod sursa (job #1942222) | Cod sursa (job #1080518) | Cod sursa (job #2970323) | Cod sursa (job #1413785)
#include <iostream>
#include <cstdio>
#define N 6000005
using namespace std;
long a[N],poz[N],minj[N],n,s,poz1,poz2,poz1c,maxim,i,j,sum;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld",&n);
scanf("%ld",&a[1]);
minj[1]=a[1]; s=a[1]; poz[1]=1;
for (i=2;i<=n;i++)
{
scanf("%ld",&a[i]);
minj[i]=minj[i-1]; poz[i]=poz[i-1];
s=s+a[i];
if (s<minj[i]) {minj[i]=s; poz[i]=i;}
}
s=0; maxim=0; poz1=0; poz2=0;
for (i=1;i<=n;i++)
{
s=s+a[i]; poz1c=1; sum=s;
for (j=1;j<i;j++) {if (s-minj[j]>sum) {sum=s-minj[j]; poz1c=poz[i]+1;}}
if (sum>maxim) {maxim=sum; poz1=poz1c; poz2=i;}
}
printf("%ld %ld %ld",maxim,poz1,poz2);
return 0;
}