Cod sursa(job #544955)
Utilizator | Lepadat Mihai-Alexandru skull | Data | 2 martie 2011 14:56:21 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <algorithm>
using namespace std;
#define maxn 6000005
#define INF 2000000000
int S[maxn];
int N;
int main()
{
int i, bestSum = -INF, a, b, poz, sum, x;
ifstream fin("ssm.in");
fin >> N;
fin >> x;
sum = x;
for (i = 2; i <= N; ++i)
{
fin >> x;
if (sum + x < x) {sum = x; poz = i; }
else
sum += x;
if (bestSum < sum)
{ bestSum = sum; a = poz; b = i; }
}
ofstream fout("ssm.out");
fout << bestSum << " " << a << " " << b;
return 0;
}