Pagini recente » Cod sursa (job #1085050) | Cod sursa (job #2750550) | Cod sursa (job #2572169) | Cod sursa (job #291530) | Cod sursa (job #1345915)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
typedef int ull;
vector<ull> ssm(vector<ull> & vect) {
ull max_sum = 0;
ull max_left, max_right;
ull cur_left, cur_right;
max_left = -1;
max_right = -1;
cur_left = cur_right = 0;
ull cur_sum = 0;
for (int i = 0; i < vect.size(); ++i) {
cur_sum += vect[i];
cur_right = i;
if (cur_sum > max_sum) {
max_sum = cur_sum;
max_left = cur_left;
max_right = cur_right;
} else if (cur_sum < vect[i]) {
cur_sum = vect[i];
cur_left = i;
cur_right = i;
}
}
vector<ull> res;
res.push_back(max_sum);
res.push_back(max_left + 1);
res.push_back(max_right + 1);
return res;
}
int main(void) {
ifstream iff("ssm.in");
ofstream off("ssm.out");
int n;
iff >> n;
vector<ull> vect;
while (n--) {
ull val;
iff >> val;
vect.push_back(val);
}
vector<ull> out = ssm(vect);
for (int i = 0; i < out.size(); ++i) {
off << out[i] << " ";
}
return 0;
}