Pagini recente » Cod sursa (job #2680851) | Cod sursa (job #2847231) | Cod sursa (job #15369) | Cod sursa (job #2580920) | Cod sursa (job #1901192)
#include <cstdio>
#include <climits>
#include <algorithm>
#define LMAX 6000000
int S[LMAX+5];
using namespace std;
int main(){
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n,i,x,Poz1,Poz2;
scanf("%d",&n);
int NEG=-INT_MAX,iNeg;
for(i=1;i<=n;++i){
scanf("%d",&x);
S[i]=S[i-1]+x;
if(x>NEG){
NEG=x;
iNeg=i;
}
}
int L1,Min=INT_MAX,Max=-INT_MAX;
for(i=0;i<=n;++i){
if(S[i]<Min){
Min=S[i];
L1=i;
}
if(S[i]-Min>Max){
Max=S[i]-Min;
Poz1=L1+1;
Poz2=i;
}
}
if(NEG>=0) printf("%d %d %d\n",Max,Poz1,Poz2);
else printf("%d %d %d\n",NEG,iNeg,iNeg);
fclose(stdin),fclose(stdout);
return 0;
}