Cod sursa(job #482789)
Utilizator | Mario Ynocente Castro MarioYC | Data | 5 septembrie 2010 09:52:45 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <cstdio>
using namespace std;
int main(){
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int N,a;
scanf("%d",&N);
scanf("%d",&a);
int ans = a,s = 0,n = 1,best = a,s2 = 0,n2 = 1;
for(int i = 1;i<N;++i){
scanf("%d",&a);
if(best<0){
best = a;
s2 = i;
n2 = 1;
}else{
best += a;
++n2;
}
if(best>ans){
ans = best;
s = s2;
n = n2;
}
}
printf("%d %d %d\n",ans,s+1,s+n);
return 0;
}