Pagini recente » Cod sursa (job #296439) | Cod sursa (job #2490968) | Cod sursa (job #2058956) | Cod sursa (job #1377930) | Cod sursa (job #409516)
Cod sursa(job #409516)
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector<int>v;
int main()
{
int n,i,j,x,smax=-1999999999,ssm,slm,sm;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
//citeste n si vectorul
v.push_back(smax);
scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&x); v.push_back(x);}
//rezolva
//suma maxima
//ssm inceput secventa de suma max
//ssl lungima secventa de suma max
for(i=1;i<=n;++i)
{
sm=v[i];
if(sm>smax) { smax=sm; ssm=i; slm=1; }
else if(sm==smax && i<ssm) { ssm=i; slm=1; }
else if(i==ssm && 1>slm) slm=1;
for(j=i+1;j<n;j++)
{
sm=sm+v[j];
if(sm>smax) {smax=sm; ssm=i; slm=j-i; }
else if(sm==smax && i<ssm) { ssm=i; slm=j-i; }
else if(i==ssm && (j-i)>slm) slm=j-i;
}
}
printf("%d %d %d\n",smax,ssm,ssm+slm);
return 0;
}