Pagini recente » Cod sursa (job #1678080) | Cod sursa (job #52331) | Cod sursa (job #1315402) | Cod sursa (job #1225280) | Cod sursa (job #2965517)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int maxn = 6e6;
const int INF = 2147483647;
int v[maxn + 1];
int main() {
int n;
fin >> n;
int maxi = -INF, pozmax = 0;
for (int i = 1; i <= n; i++) {
fin >> v[i];
if (v[i] >= maxi) {
maxi = v[i];
pozmax = i;
}
}
if (maxi <= 0) {
fout << maxi << ' ' << pozmax << ' ' << pozmax << '\n';
return 0;
}
queue<int> goolah;
goolah.push(1);
int sum = v[1], maxsum = -INF, start, end;
for (int i = 2; i <= n; i++) {
goolah.push(i);
sum += v[i];
while (sum < 0) {
sum -= v[goolah.front()];
goolah.pop();
}
if (sum > 0 && sum > maxsum) {
maxsum = sum;
start = goolah.front();
end = i;
}
}
fout << maxsum << ' ' << start << ' ' << end << '\n';
return 0;
}