Cod sursa(job #591858)
| Utilizator | Data | 25 mai 2011 19:02:25 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
#define Infinit 2000000000
using namespace std;
long N, X, Start, S, Best, StartBest, EndBest;
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
long i, j;
fin >> N;
Start=1;
Best=-Infinit;
for (i=1; i<=N; i++)
{
fin >> X;
S+=X;
if (S>Best)
{
Best=S;
StartBest=Start;
EndBest=i;
}
if (S<0)
{
S=0;
Start=i+1;
}
}
fout << Best << " " << StartBest << " " << EndBest << "\n";
fin.close ();
fout.close ();
return 0;
}
