Pagini recente » Cod sursa (job #789434) | Cod sursa (job #2396713) | Cod sursa (job #1946480) | Cod sursa (job #1357709) | Cod sursa (job #540376)
Cod sursa(job #540376)
//http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.12.html
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE * out = fopen("ssm.out", "w");
FILE * in = fopen("ssm.in", "rb");
//printf("%d",BUFSIZ);
size_t dim = 1028*32;
char * buffer = calloc(dim,sizeof(char));
//setbuf(in,buffer);
//printf("%d",dim);
int code = setvbuf(in,buffer,_IOFBF,dim);
//printf("%d",code);
int n;
fscanf(in,"%d",&n);
int i;
int suma = 0;
int startIndice = -1;
int endIndice = -1;
int maxSuma = -1* (1<<16);
int maxStart = -1;
int maxEnd = -1;
for ( i=0; i<n; i++){
int k;
fscanf(in,"%d",&k);
if ( k>k+suma ){
suma = k;
startIndice = i;
endIndice = i;
} else {
suma=suma+k;
endIndice = i;
}
if ( suma>maxSuma){
maxSuma = suma;
maxStart = startIndice;
maxEnd = endIndice;
}
}
fprintf(out,"%d %d %d",maxSuma,maxStart+1,maxEnd+1);
fclose(out);
fclose(in);
}