Cod sursa(job #412840)
| Utilizator | Data | 6 martie 2010 15:33:20 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,*v,i;
FILE* in;
FILE* out;
in=fopen("ssm.in","r");
out=fopen("ssm.out","w");
fscanf(in,"%d",&n);
v=(int*)malloc (n*sizeof(int));
for (i=0;i<n;i++)
fscanf(in,"%d",&v[i]);
int smax,sum,start,stop;
smax=sum=v[0];
for (i=1;i<n;i++){
if (sum<0){
sum=v[i];
start=i+1;
}
else{
sum+=v[i];
stop=i;
}
if (sum>smax) smax=sum;
}
fprintf(out,"%d %d %d",smax,start,stop);
fclose(in);
fclose(out);
free(v);
return 0;
}
