Cod sursa(job #2290337)
| Utilizator | Data | 26 noiembrie 2018 11:59:53 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-32 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <stdio.h>
#include <stdlib.h>
int v[6000002];
int main(){
int max=0,st,dr,s,i,i1,i2,n;
FILE*fin=fopen("ssm.in", "r");
FILE*fout=fopen("ssm.out", "w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
st=dr=1;
s=v[1];
max=v[1];
i1=i2=1;
for(i=2;i<=n;i++){
if(s<0){
s=0;
dr=st=i;
}
else
dr=i;
s+=v[i];
if(s>max){
max=s;
i1=st;
i2=dr;
}
}
fprintf(fout,"%d %d %d",max,i1,i2);
fclose(fin);
fclose(fout);
return 0;
}
