Pagini recente » Cod sursa (job #2337957) | Cod sursa (job #1588582) | Cod sursa (job #2614110) | Cod sursa (job #2116970) | Cod sursa (job #2132385)
#include <stdio.h>
#define MAX_N 6000000
FILE *fin, *fout;
int N;
int v[MAX_N];
int result;
int start;
int end;
void solve_ssm(void) {
int current_max = 0, local_start = 0;
result = -MAX_N;
start = end = 0;
for (int i = 1; i < N; i++) {
if (v[i] + current_max < v[i]) {
local_start = i;
current_max = v[i];
}
else {
current_max += v[i];
}
if (current_max > result) {
result = current_max;
start = local_start;
end = i;
}
}
}
void read(void) {
fin = fopen("grader_test4.in", "r");
fscanf(fin, "%d", &N);
for (int i = 0; i < N; i++) {
fscanf(fin, "%d", &v[i]);
}
fclose(fin);
}
void write(void) {
fout = fopen("ssm.out", "w");
fprintf(fout, "%d %d %d", result, start+1, end+1);
fclose(fout);
}
int main(void) {
read();
solve_ssm();
write();
return 0;
}