Pagini recente » Borderou de evaluare (job #1572313) | Cod sursa (job #2206234) | Borderou de evaluare (job #773451) | Cod sursa (job #2245577) | Cod sursa (job #3238821)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
#define MIN_VALUE -2000000000
#define MAX_LEN 6000001
int a[MAX_LEN], sum[MAX_LEN];
int maxSum = MIN_VALUE;
int main() {
int n;
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> a[i];
sum[i] = sum[i - 1] + a[i];
}
int left = 0, right = 0;
for (int i = 1; i <= n; ++i) {
for (int j = i; j >= 1; --j) {
if (sum[i] - sum[j - 1] > maxSum) {
left = j;
right = i;
maxSum = sum[i] - sum[j - 1];
} else if (sum[j] - sum[i - 1] == maxSum && j < left) {
left = j;
right = i;
}
}
}
fout << maxSum << ' ' << left << ' ' << right;
return 0;
}
/*
*/