Pagini recente » Monitorul de evaluare | Cod sursa (job #1747445) | Cod sursa (job #702672) | Cod sursa (job #3301990) | Cod sursa (job #3309105)
#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
const int64 myINF = 3e9;
const int N_MAX = 6e6;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int N; int a[1 + N_MAX];
int main()
{
fin >> N;
for (int i = 1; i <= N; i ++)
fin >> a[i];
int64 sum = 0;
int64 min_sum = 0, j = 1;
int64 answer = -myINF; int left, right;
for (int i = 1; i <= N; i ++) {
sum += a[i];
if (sum - min_sum > answer) {
answer = sum - min_sum;
left = j; right = i;
}
else if (sum - min_sum == answer && j < left) {
left = j;
right = i;
}
if (min_sum > sum) {
min_sum = sum;
j = i + 1;
}
}
fout << answer << " " << left << " " << right;
return 0;
}