Pagini recente » Cod sursa (job #506681) | Cod sursa (job #1525988) | Cod sursa (job #1078280) | Cod sursa (job #557080) | Cod sursa (job #27131)
Cod sursa(job #27131)
#include <stdio.h>
#define in "buline.in"
#define out "buline.out"
#define NMAX 200001
#define maxim(a,b) ( (a) > (b) ? (a) : (b) )
#define minim(a,b) ( (a) < (b) ? (a) : (b) )
int smax;
int n, a[NMAX], sum[NMAX], tata[NMAX], inf;
int main()
{
freopen( in, "r", stdin );
freopen( out, "w", stdout );
int i, col;
scanf( "%d", &n );
for ( i = 1; i <= n; ++i )
{
scanf( "%d%d", &a[i], &col);
}
//secventa de suma maxima
sum[0] = 0;
tata[0] = 0;
for ( i = 1; i <= n; ++i )
{
sum[i] = sum[i-1] + a[i];
tata[i] = maxim( tata[i-1], a[i] );
// printf( "%d %d\n", sum[i], tata[i] );
}
smax = 0;
inf = 1000000;
int best;
int st, dr;
for ( i = 1; i <= n; ++i )
{
best = tata[i-1] + sum[n] - sum[i-1];
if ( best < inf )
{
inf = best;
st = i;
}
else if ( best == inf )
{
st = minim( st, i );
}
}
printf( "%d %d %d\n", inf, st, dr = st + 1 );
return 0;
}