Pagini recente » Cod sursa (job #637045) | Cod sursa (job #790943) | Cod sursa (job #2391014) | Borderou de evaluare (job #1210442) | Cod sursa (job #3345490)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
int n;
in >> n;
vector<int> v(n + 1);
for (int i = 1; i <= n; i++) {
in >> v[i];
}
int dp_prev, dp_curent;
int start_prev, start_curent, sfarsit;
dp_prev = dp_curent = v[1];
start_prev = start_curent = 1;
sfarsit = 1;
int ssm = dp_curent;
for (int i = 2; i <= n; i++) {
start_curent = i;
if (dp_prev >= 0) {
dp_curent = dp_prev + v[i];
start_curent = start_prev;
} else {
dp_curent = v[i];
}
if (dp_curent > ssm) {
ssm = dp_curent;
sfarsit = i;
}
start_prev = start_curent;
dp_prev = dp_curent;
}
out << ssm << " " << start_curent << " " << sfarsit;
in.close();
out.close();
return 0;
}