Pagini recente » Cod sursa (job #1193708) | Istoria paginii runda/cena | Cod sursa (job #2792848) | Cod sursa (job #1336598) | Cod sursa (job #417849)
Cod sursa(job #417849)
/*
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"
int N;
int maxim;
int main ( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%d", &N );
int bbegin = 1, begin = 1, end = 1;
maxim = -(1<<30);
int i, x = 0, Y;
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;
}