Pagini recente » Cod sursa (job #1308698) | Cod sursa (job #1491517) | Cod sursa (job #2931502) | Cod sursa (job #1841326) | Cod sursa (job #2639352)
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int n;
fin >> n;
vector<int> v(n + 1);
for (int i = 1; i < n + 1; ++i) {
int x;
fin >> x;
v[i] = x;
}
int currentMax, globalMax, leftInd, rightInd;
int gli, gri;
currentMax = globalMax = v[1];
leftInd = rightInd = gli = gri = 1;
for (int i = 2; i < v.size(); ++i) {
if (v[i] > (currentMax + v[i])) {
leftInd = rightInd = i;
currentMax = v[i];
} else {
++rightInd;
currentMax = v[i] + currentMax;
}
if (currentMax > globalMax) {
globalMax = currentMax;
gli = leftInd;
gri = rightInd;
}
}
fout << globalMax << " " << gli << " " << gri;
return 0;
}