Pagini recente » Cod sursa (job #1963193) | Cod sursa (job #600968) | Cod sursa (job #302737) | Cod sursa (job #408307) | Cod sursa (job #2841361)
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n;
fin >> n;
vector<int> a(n);
for (auto &r : a)
fin >> r;
vector<int> s(n);
vector<int> inceput(n);
s[0] = a[0];
inceput[0] = 0;
for (int i = 1; i < n; ++i) {
if (/*a[i] > s[i-1] + a[i]*/ s[i-1] < 0) {
s[i] = a[i];
inceput[i] = i;
}
else {
s[i] = s[i-1] + a[i];
inceput[i] = inceput[i-1];
}
}
int maxim = s[0];
int incep_maxim = inceput[0];
int sf_maxim = 0;
for (int i = 1; i < n; ++i) {
if (s[i] > maxim) {
maxim = s[i];
incep_maxim = inceput[i];
sf_maxim = i;
}
}
fout << maxim << ' ' << incep_maxim + 1
<< ' ' << sf_maxim + 1 << endl;
return 0;
}