Pagini recente » Cod sursa (job #1652698) | Cod sursa (job #1328410) | Cod sursa (job #1206391) | Cod sursa (job #1067545) | Cod sursa (job #3303027)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream be("ssm.in");
ofstream ki("ssm.out");
void f(int n, const vector<int> &s)
{
if(n == 1)
{
ki << s[0] << " " << 1 << " " << 1;
return;
}
int jelenlegi, elozo, best = INT_MIN;
jelenlegi = s[0];
int kezdo_j = 0, veg_j = 0;
int kezdo_e, veg_e;
int best_k, best_v;
for(int i = 1; i < n; i++)
{
elozo = jelenlegi;
kezdo_e = kezdo_j;
veg_e = veg_j;
jelenlegi = max(s[i], s[i] + elozo);
if(jelenlegi == s[i] && s[i] != s[i] + elozo)
{
kezdo_j = i;
}else
{
kezdo_j = kezdo_e;
}
veg_j = i;
best = max(jelenlegi, best);
if(best == jelenlegi)
{
best_k = kezdo_j;
best_v = veg_j;
}
}
ki << best << " " << best_k + 1 << " " << best_v + 1;
}
int main()
{
int n;
be >> n;
vector<int> s(n);
for(int i = 0; i < n; i++)
{
be >> s[i];
}
vector<int> best(n);
f(n, s);
return 0;
}