Pagini recente » Cod sursa (job #21182) | Cod sursa (job #1406723) | Cod sursa (job #2506617) | Cod sursa (job #378684) | Cod sursa (job #528796)
Cod sursa(job #528796)
#include <fstream>
#include <iostream>
#define MAXN 6000010
#define INF 99999999
using namespace std;
int sum[MAXN], best, a[MAXN], n, bestSum = -INF;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f >> n;
sum[0] = 0;
for(int i = 1; i <= n; ++i)
{
f >> a[i];
sum[i] = sum[i - 1] + a[i];
}
int min = 0, pozi = 0, pozf = 0;
for(int i = 1; i <= n; ++i)
{
int best = sum[i] - min;
if(sum[i] < min)
{
min = sum[i];
pozi = i;
}
if(best > bestSum)
{
bestSum = best;
pozf = i;
}
}
if(pozi + 1 <= pozf)
g << bestSum << " " << pozi + 1 << " " << pozf;
else
g << bestSum << " " << pozf << " " << pozf;
f.close();
g.close();
return 0;
}