Cod sursa(job #361521)
| Utilizator | Data | 5 noiembrie 2009 18:18:09 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#define inf -9999999999
long best,n,x,start,lung,B,S,L;
int main(){
FILE * f=fopen("ssm.in", "r");
FILE * g=fopen("ssm.out","w");
fscanf(f,"%d",&n);
best = B = inf;
long i;
for(i=1;i<=n;i++){
fscanf(f,"%d",&x);
if ( best + x <= x ) { start = i; best = x; lung = 1; }
else if ( best + x > x ) { best += x ; lung++; }
if ( B < best ){ B = best ; S = start ; L = lung; }
}
fprintf(g,"%d %d %d",B,S,S+L-1);
return 0;
}