Pagini recente » Cod sursa (job #2752679) | Cod sursa (job #2021676) | Cod sursa (job #2021690) | Monitorul de evaluare | Cod sursa (job #1296749)
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f
ifstream is("ssm.in");
ofstream os("ssm.out");
vector<int> a, best;
int n, bestSum = -INF, i1, j1;
int main()
{
is >> n;
int k;
a.resize(n+1);
best.resize(n+1);
for ( int i = 1; i <= n; i++ )
is >> a[i];
bestSum = a[1];
k = 1;
for ( int i = 1; i <= n; ++ i)
{
best[i] = a[i];
if (best[i] < best[i-1] + a[i])
{
best[i] = best[i-1] + a[i];
k++;
}
else
k = 1;
if (bestSum < best[i])
{
bestSum = best[i];
j1 = i;
i1 = i - k + 1;
}
}
os << bestSum << ' ' << i1 << ' ' << j1;
is.close();
os.close();
return 0;
}