Pagini recente » Cod sursa (job #3301503) | Cod sursa (job #2750596) | Cod sursa (job #765700) | Cod sursa (job #2145879) | Cod sursa (job #417844)
Cod sursa(job #417844)
/*
Observatii :
intre freopen si prima citire nu se declara variabile niciodata !!!
pentru a optimiza algoritmul, se face totul din citire. ( altfel, se fac 2 cicluri pana la NMAX = 6000000 )
*/
#include <stdio.h>
#include <stdlib.h>
#define in "ssm.in"
#define out "ssm.out"
#define NMAX 6000005
int N, A[NMAX], bbegin, begin, end;
int maxim;
int main ( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%d", &N );
int i, x = 0, Y;
maxim = -(1<<30);
for ( i = 1 ; i <= N; ++i )
{
scanf ( "%d", &Y );
if ( x >= 0 )
x += Y;
else
{
x = Y;
begin = i;
}
if ( maxim < x )
{
maxim = x;
bbegin = begin;
end = i;
}
}
printf ( "%d %d %d\n", maxim, bbegin, end );
return 0;
}