Cod sursa(job #1049505)
| Utilizator | Data | 7 decembrie 2013 13:39:05 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
using namespace std;
#define MAX 6000001
ifstream is("ssm.in");
ofstream os("ssm.out");
int maximumsum, ms[MAX], x[MAX], n,cs,cd,cs2;
int main()
{
is >> n;
for ( int i = 1; i <= n; ++i )
is >> x[i];
maximumsum = x[1];
for ( int i = 1; i <= n; ++i )
{
ms[i] = x[i];
if ( ms[i] < ms[i-1] + x[i] )
ms[i] = ms[i-1] + x[i];
if ( ms[i] < 0)
cs = i;
if ( maximumsum < ms[i] )
{
cs2 = cs;
maximumsum = ms[i];
cd = i;
}
}
os << maximumsum << " ";
os << cs2 << " ";
os << cd << " ";
}
