Pagini recente » Cod sursa (job #269007) | Cod sursa (job #435032) | Cod sursa (job #638724) | Cod sursa (job #235084) | Cod sursa (job #2284180)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, i, x, dp[ 5 ], start[ 5 ], MAX, pozi, pozf;
int main()
{
fin>> n;
fin >> x;
dp[ 0 ] = x;
start[ 0 ] = 1;
MAX = x;
pozi = 1;
pozf = 1;
for ( i = 2; i <= n; i++ )
{
fin >> x;
dp[ 1 ] = x + max( 0, dp[ 0 ] );
if ( dp[ 0 ] >= 0 )
{
start[ 1 ] = start[ 0 ];
}
else
{
start[ 1 ] = i;
}
if ( dp[ 1 ] > MAX )
{
MAX = dp[ 1 ];
pozi = start[ 1 ];
pozf = i;
}
dp[ 0 ] = dp[ 1 ];
start[ 0 ] = start[ 1 ];
}
fout<< MAX << ' ' << pozi << ' ' << pozf;
return 0;
}