Pagini recente » Cod sursa (job #176183) | Cod sursa (job #75041) | Cod sursa (job #1233332) | Cod sursa (job #1574012) | Cod sursa (job #304092)
Cod sursa(job #304092)
#include <iostream>
#include <algorithm>
#define FIN "ssm.in"
#define FOUT "ssm.out"
#define MAX 6000010
using namespace std;
int v[MAX],dyn[MAX];
int N,lpoz,poz,pmax,pemax;
int main(void){
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%d",&N);
for (int i=1;i<=N;++i) {scanf("%d",&v[i]);}
int maxim=v[1];
pmax=pemax=1;
for (int i=1;i<=N;++i){
dyn[i]=v[i];
poz=i;
if (dyn[i-1]+v[i]>dyn[i]){dyn[i]=dyn[i-1]+v[i];poz=lpoz;}
lpoz=poz;
if (dyn[i]>maxim ){ maxim=dyn[i];pmax=poz;pemax=i;}
else if (dyn[i]==maxim){
if (poz<pmax){
pmax=poz;
pemax=i;
};
}
}
printf("%d %d %d\n",maxim,pmax,pemax);
fclose(stdin);
fclose(stdout);
return 0;
}