Pagini recente » Cod sursa (job #1620558) | Cod sursa (job #2443536) | Cod sursa (job #614503) | Cod sursa (job #2828537) | Cod sursa (job #541340)
Cod sursa(job #541340)
#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
#define BUF_SIZE 60000*1024
void read(char *filename, int *start, int *end, int *sum)
{
FILE *f = fopen(filename,"rb");
int i,aux,n;
int sumc = 0, st = 0;
*start = *end = 0;
char *buf = (char*)malloc(BUF_SIZE);
setbuf(f,buf);
*sum = 0;
fscanf(f,"%d",&n);
for(i = 0; i<n; ++i){
fscanf(f,"%d",&aux);
if(sumc+aux > aux){
sumc += aux;
}
else
{
sumc = aux;
st = i;
}
if(sumc > *sum){
*sum = sumc;
*start = st;
*end = i;
}
}
fclose(f);
free(buf);
}
int main()
{
int start, end, sum;
FILE *f = fopen("ssm.out","w");
read("ssm.in",&start,&end, &sum);
fprintf(f,"%d %d %d\n",sum, start+1, end+1);
fflush(stdout);
fclose(f);
return 0;
}