Pagini recente » Cod sursa (job #2556071) | Cod sursa (job #839458) | Cod sursa (job #3271850) | Cod sursa (job #1089840) | Cod sursa (job #471809)
Cod sursa(job #471809)
#include <fstream>
#include <vector>
using namespace std;
int N;
int MAX, POS, LEN;
vector<int> Numbers;
int Max, LastMax;
int Len, LastLen;
void read()
{
int x;
ifstream fin("ssm.in");
fin >> N;
for (int i = 0; i < N; ++i)
{
fin >> x;
Numbers.push_back(x);
}
fin.close();
}
void solve()
{
LastMax = Numbers[N - 1];
LastLen = 1;
MAX = LastMax;
LEN = LastLen;
POS = N - 1;
for (int i = N - 2; i >= 0; --i)
{
if (LastMax <= 0)
{
Max = Numbers[i];
Len = 1;
}
else
{
Max = Numbers[i] + LastMax;
Len = 1 + LastLen;
}
if (Max > MAX || Max == MAX && i < POS || Max == MAX && i == POS && Len < LEN)
{
MAX = Max;
LEN = Len;
POS = i;
}
LastMax = Max;
LastLen = Len;
}
}
void write()
{
ofstream fout("ssm.out");
fout << MAX << ' ' << (POS + 1) << ' ' << (POS + LEN) << '\n';
fout.close();
}
int main()
{
read();
solve();
write();
return 0;
}