Cod sursa(job #263084)
Utilizator | Data | 19 februarie 2009 21:43:01 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <stdio.h>
int N;
char buf[1024*1024];
int main(){
int i,x,S=0,Smax=-2100000000,lmax=0,rmax=0,l;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
setvbuf(f,buf,_IOFBF,sizeof buf);
fscanf(f,"%d\n",&N);
for (i=l=1;i<=N;++i){
fscanf(f,"%d",&x);
if (S<0) {S=x;l=i;}
else S+=x;
if (S>Smax) {Smax=S;
lmax=l;
rmax=i;}
}
fprintf(g,"%d %d %d",Smax,lmax,rmax);
fclose(g);
return 0;
}