Pagini recente » Cod sursa (job #966496) | Cod sursa (job #756431) | Cod sursa (job #10230) | Cod sursa (job #310220) | Cod sursa (job #1065946)
//subsir de suma maximala : http://www.infoarena.ro/problema/ssm
#include <cstdio>
int main () {
FILE *f, *g;
f = fopen( "ssm.in", "r" );
g = fopen( "ssm.out", "w" );
int n, x, ssm, maxssm, inc, sf, maxic, maxsf;
fscanf( f, "%d%d", &n, &x );
ssm = x > 0 ? x : 0;
maxssm = x;
if( x > 0 ) {
inc = sf = 0;
maxic = maxsf = 0;
}
else {
inc = sf = -1;
maxic = maxsf = -1;
}
for( int i = 1; i < n ; ++i ) {
fscanf( f, "%d", &x );
ssm += x;
sf = i;
if( ssm > maxssm ) {
maxssm = ssm;
maxic = inc;
maxsf = sf;
}
if( ssm < 0 ) {
inc = i + 1;
ssm = 0;
}
}
fprintf( g, "%d %d %d\n", maxssm, maxic + 1, maxsf + 1 );
fclose( f );
fclose( g );
return 0;
}