Cod sursa(job #422636)
Utilizator | Data | 22 martie 2010 22:38:33 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
FILE* fin=fopen("ssm.in","r");
FILE* fout=fopen("ssm.out","w");
#define MAX 6000000
int n,vec[MAX],min;
int main(){
fscanf(fin,"%d ",&n);
int min=0,best=-(2<<29),beg=0,idx,end;
for(int i=1;i<=n;i++){
fscanf(fin,"%d ",&vec[i]);
vec[i]+=vec[i-1];
if(best<vec[i]-min){
best=vec[i]-min,beg=idx,end=i;
}
if(vec[i]<min){
idx=i+1,min=vec[i];
}
}
fprintf(fout,"%d %d %d",best,beg,end);
fclose(fin);
fclose(fout);
return 0;
}