Cod sursa(job #2473943)
Utilizator | Nicola Victor-Teodor Victor2006 | Data | 14 octombrie 2019 15:23:44 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <stdio.h>
#define INF 2000000000
int main() {
FILE *fin, *fout;
int n, a, sc, i, smax, start, stop;
fin = fopen( "ssm.in", "r" );
fscanf( fin, "%d", &n );
sc = smax = -INF;
for ( i = 0; i < n; i ++ ) {
fscanf( fin, "%d", &a );
if ( sc < 0 ) {
sc = 0;
start = i + 1;
}
sc += a;
if ( sc > smax ) {
smax = sc;
stop = i + 1;
}
}
fclose( fin );
fout = fopen( "ssm.out", "w" );
fprintf( fout, "%d %d %d\n", smax, start, stop );
fclose( fout );
return 0;
}