Pagini recente » Cod sursa (job #413496) | Cod sursa (job #3234470) | Cod sursa (job #939815) | Cod sursa (job #2046401) | Cod sursa (job #541338)
Cod sursa(job #541338)
#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
#define BUF_SIZE 60000
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);
sumc += aux;
if(sumc > *sum){
*sum = sumc;
*start = st;
*end = i;
}
else if(sumc < 0){
st = i+1;
sumc = 0;
}
}
fclose(f);
free(buf);
}
int main()
{
int i;
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;
}