Pagini recente » Cod sursa (job #1947446) | Cod sursa (job #1336765) | Cod sursa (job #177385) | Cod sursa (job #2332677) | Cod sursa (job #1706246)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 6000000
inline int maxim(int a, int b){
return a > b ? a : b;
}
int d[1+MAXN];
int main(){
int n;
FILE*fi,*fo;
fi=fopen("ssm.in","r");
fo=fopen("ssm.out","w");
fscanf(fi,"%d", &n);
int max=-1, x, bgn=1, st, end;
for(int i=1;i<=n;i++){
fscanf(fi,"%d", &x);
d[i]=maxim(0, d[i-1])+x;
if(d[i-1]<0)
bgn=i;
if(d[i]>max){
max=d[i];
st=bgn;
end=i;
}
else if(d[i]==max){
if(bgn<st){
st=bgn;
end=i;
}
}
}
if(max==-1)
fprintf(fo,"-1");
else
fprintf(fo,"%d %d %d", max, st, end);
fclose(fi);
fclose(fo);
return 0;
}