Pagini recente » Cod sursa (job #2303306) | Cod sursa (job #1940435) | Cod sursa (job #2357326) | Cod sursa (job #2502642) | Cod sursa (job #1784837)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int N;
vector<int> nrs;
ifstream in("ssm.in");
ofstream out("ssm.out");
void read_input()
{
in >> N;
nrs.resize(N);
for (int i = 0; i < N; i++) {
in >> nrs[i];
}
}
void dyn_ssm()
{
int maxSum = nrs[0];
int end = 0;
int backSum = nrs[0];
int start = 0;
int backStart = 0;
for (int i = 1; i < N; i++) {
if (nrs[i] < backSum + nrs[i]) {
backSum = backSum + nrs[i];
} else {
backSum = nrs[i];
backStart = i;
}
if (maxSum < backSum) {
maxSum = backSum;
end = i;
start = backStart;
}
}
out << maxSum << " " << start + 1 << " " << end + 1;
}
int main()
{
read_input();
dyn_ssm();
return 0;
}