Pagini recente » Cod sursa (job #1082627) | Cod sursa (job #3164337) | Cod sursa (job #2522815) | Cod sursa (job #951529) | Cod sursa (job #2652156)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct maxSum {
int s, i, j;
};
maxSum ssm(vector<int>& v) {
int n = v.size();
int smax = 0, begin = 0, end = -1;
int i = 0, s = v[0];
for (int j = 1;j < n;++j) {
s += v[j];
while (s < 0) {
s -= v[i++];
if (s > smax) {
smax = s;
begin = i;
end = j;
}
}
if (s > smax) {
smax = s;
begin = i;
end = j;
}
}
return { smax,begin,end };
}
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n;
vector<int> v;
fin >> n;
while (n--) {
int x;
fin >> x;
v.push_back(x);
}
maxSum r = ssm(v);
fout << r.s << ' ' << r.i + 1 << ' ' << r.j + 1;
return 0;
}