Cod sursa(job #1901176)
Utilizator | Tir Vlad Ioan Vlad3108 | Data | 3 martie 2017 19:39:40 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#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);
for(i=1;i<=n;++i){
scanf("%d",&x);
S[i]=S[i-1]+x;
}
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;
}
}
printf("%d %d %d\n",Max,Poz1,Poz2);
fclose(stdin),fclose(stdout);
return 0;
}