Pagini recente » Cod sursa (job #1130987) | Cod sursa (job #572492) | Cod sursa (job #802176) | Cod sursa (job #2546469) | Cod sursa (job #2132277)
#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 = v[0];
result = v[0];
start = 0;
end = 0;
for (int i = 1; i < N; i++) {
if (v[i] > current_max + v[i]) {
current_max = v[i];
start = i;
}
else {
current_max += v[i];
}
if (current_max > result) {
result = current_max;
end = i;
}
}
}
void read(void) {
fin = fopen("ssm.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;
}