Pagini recente » Cod sursa (job #2105760) | Cod sursa (job #2806959) | Cod sursa (job #338168) | Cod sursa (job #1911157) | Cod sursa (job #541344)
Cod sursa(job #541344)
#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
#define BUF_SIZE 42000*1024
void read(char *filename, int *start, int *end, int *sum)
{
FILE *f = fopen(filename,"rb");
int i,n, aux, sumc = 0, st = 0;
int size = BUF_SIZE;
char *buf = (char*)malloc(size);
while(buf == NULL){
size /= 2;
buf = (char*)malloc(size);
}
setbuf(f,buf);
fscanf(f,"%d",&n);
*start = *end = 0;
*sum = -INT_MAX;
for(i = 0; i<n; ++i){
fscanf(f,"%d",&aux);
if(sumc < 0){
sumc = aux;
st = i;
}
else
sumc += aux;
if(sumc > *sum){
*sum = sumc;
*start = st;
*end = i;
}
}
fclose(f);
free(buf);
}
int main()
{
int start, end, sum;
start = end;
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;
}