Pagini recente » Cod sursa (job #1460126) | Cod sursa (job #642563) | Cod sursa (job #1338152) | Cod sursa (job #2976455) | Cod sursa (job #541337)
Cod sursa(job #541337)
#include<stdio.h>
#include<limits.h>
#define BUF_SIZE 42098
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 = 0;
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;
}