Pagini recente » Borderou de evaluare (job #1572609) | Borderou de evaluare (job #2476585) | Borderou de evaluare (job #2279877) | Borderou de evaluare (job #3175469) | Cod sursa (job #3238810)
#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int MAX_NUM = 6e6;
int a[MAX_NUM], n, k;
long long prefixSum[MAX_NUM];
ifstream fin("test.in");
ofstream fout("test.out");
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
fin >> n;
int sum = 0, currentSum = 0;
for (int i = 1; i <= n; ++i) {
fin >> a[i];
prefixSum[i] = prefixSum[i - 1] + a[i];
}
int minSum = 0, left, l, r;
for (int i = 1; i <= n; ++i) {
if (prefixSum[i - 1] < minSum) {
minSum = prefixSum[i - 1];
left = i;
}
currentSum = prefixSum[i] - minSum;
if (currentSum > sum) {
sum = currentSum;
l = left;
r = i;
}
}
fout << sum << " " << l << " " << r << "\n";
return 0;
}