Pagini recente » Cod sursa (job #902450) | Cod sursa (job #866352) | Cod sursa (job #2240417) | Cod sursa (job #2785790) | Cod sursa (job #2705445)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MAX_KEPT_IN_MEMORY
int N;
ifstream f("ssm.in");
ofstream g("ssm.out");
void solve()
{
int sumMaxes[2];
f>>sumMaxes[0];
int nr;
int ssMax = INT32_MIN;
int ssEnd_Max = 0;
int ssStart_Max = 0;
int ssEnd = 0;
int ssStart = 0;
for (int i = 1; i < N; i++)
{
f >> nr;
if (sumMaxes[0] >= 0)
{
sumMaxes[1] = sumMaxes[0] + nr;
}
else
{
sumMaxes[1] = nr;
}
if (ssMax < sumMaxes[1])
{
ssMax = sumMaxes[1];
ssStart_Max = ssStart;
ssEnd_Max = ssEnd;
}
if (sumMaxes[1] < 0)
{
ssStart = i + 1;
ssEnd = i + 1;
}
else
{
ssEnd++;
}
sumMaxes[0] = sumMaxes[1];
}
g << ssMax << " " << ssStart_Max + 1 << " " << ssEnd_Max + 1;
}
int main()
{
// Program
f >> N;
solve();
// Exit
f.close();
g.close();
return 0;
}