Pagini recente » Cod sursa (job #436378) | Cod sursa (job #2957711)
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <limits.h>
const int32_t MAX_N = 6000000;
int32_t n, sum[MAX_N];
int main() {
FILE* fin = fopen("ssm.in", "r");
FILE* fout = fopen("ssm.out", "w");
fscanf(fin, "%i", &n);
for(int32_t i = 0; i < n; ++i) {
int32_t x;
fscanf(fin, "%i", &x);
if(i && sum[i - 1] >= 0)
sum[i] = sum[i - 1] + x;
else
sum[i] = x;
}
int32_t begin = 0, max = INT_MIN, maxBegin = 0, maxEnd = 0;
for(int32_t i = 0; i < n; ++i) {
if(i && sum[i - 1] < 0)
begin = i;
if(sum[i] > max) {
max = sum[i];
maxBegin = begin;
maxEnd = i;
}
}
++maxBegin;
++maxEnd;
fprintf(fout, "%i %i %i", max, maxBegin, maxEnd);
fclose(fin);
fclose(fout);
return 0;
}