Pagini recente » Cod sursa (job #1011980) | Cod sursa (job #2675711) | Cod sursa (job #3256193) | Cod sursa (job #2518795) | Cod sursa (job #541341)
Cod sursa(job #541341)
#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
#define BUF_SIZE 60000*1024
void read(char *filename, int *start, int *end, long *sum)
{
FILE *f = fopen(filename,"rb");
int i,aux,n;
long sumc = 0;
int st = 0;
*start = *end = 0;
char *buf = (char*)malloc(BUF_SIZE);
setbuf(f,buf);
*sum = 0;
fscanf(f,"%ld",&n);
for(i = 0; i<n; ++i){
fscanf(f,"%ld",&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;
long sum;
FILE *f = fopen("ssm.out","w");
read("ssm.in",&start,&end, &sum);
fprintf(f,"%ld %d %d\n",sum, start+1, end+1);
fflush(stdout);
fclose(f);
return 0;
}