Pagini recente » Cod sursa (job #2381875) | Cod sursa (job #1647776) | Cod sursa (job #1226118) | Cod sursa (job #776554) | Cod sursa (job #541336)
Cod sursa(job #541336)
#include<stdio.h>
#include<limits.h>
#define BUF_SIZE 42000
void read(char *filename, int *n, int **v)
{
FILE *f = fopen(filename,"rb");
int i;
char *buf = (char*)malloc(BUF_SIZE);
setbuf(f,buf);
fscanf(f,"%d",n);
*v = (int*) malloc(*n * sizeof(int));
for(i = 0; i< *n; ++i)
fscanf(f,"%d",(*v)+i);
fclose(f);
free(buf);
}
int main()
{
int n, *v;
int i;
int start, end, sum, sumc = 0, st = 0;
start = end;
FILE *f = fopen("ssm.out","w");
read("ssm.in",&n,&v);
sum = *v;
for(i = 0; i<n; ++i){
sumc += v[i];
if(sumc > sum){
sum = sumc;
start = st;
end = i;
}
else if(sumc < 0){
st = i+1;
sumc = 0;
}
}
fprintf(f,"%d %d %d\n",sum, start+1, end+1);
fflush(stdout);
fclose(f);
free(v);
return 0;
}