Pagini recente » Cod sursa (job #1395334) | Cod sursa (job #717646) | Cod sursa (job #309910) | Cod sursa (job #2134402) | Cod sursa (job #409732)
Cod sursa(job #409732)
#include<stdio.h>
#include<algorithm>
#include<vector>
#define minf -1999999999
#define N_max 6000001
using namespace std;
vector<int>v;
int sum[N_max];
int main()
{
int n,i,x,y,bestsum=minf,min=0,best;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
//citeste n si vectorul
v.push_back(bestsum);
scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&x); v.push_back(x);}
//rezolva
for(i=1;i<=n;++i)
sum[i]=sum[i-1]+v[i];
x=0;y=0; //x-start ,y-final
for(i=1;i<=n;++i)
{
best=sum[i]-min;
if(min>sum[i]) { min=sum[i]; x=i;}
if(bestsum<best){ bestsum=best; y=i;}
else if(bestsum==best && y<i-x) y=i;
}
printf("%d %d %d\n",bestsum,x+1,y);
return 0;
}