Cod sursa(job #482792)
Utilizator | Mario Ynocente Castro MarioYC | Data | 5 septembrie 2010 10:09:35 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
int main(){
FILE *fin = fopen ("ssm.in", "r");
FILE *fout = fopen ("ssm.out", "w");
int N,a;
fscanf(fin,"%d",&N);
fscanf(fin,"%d",&a);
int ans = a,s = 0,n = 1,best = a,s2 = 0,n2 = 1,i;
for(i = 1;i<N;++i){
fscanf(fin,"%d",&a);
if(best<0){
best = a;
s2 = i;
n2 = 1;
}else{
best += a;
++n2;
}
if(best>ans){
ans = best;
s = s2;
n = n2;
}
}
fprintf(fout,"%d %d %d\n",ans,s+1,s+n);
return 0;
}