Cod sursa(job #2290276)
Utilizator | Nicola Victor Teodor Victoras2006 | Data | 26 noiembrie 2018 11:27:32 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <stdio.h>
int main() {
FILE *fin = fopen( "ssm.in", "r" ), *fout = fopen( "ssm.out", "w" );
int n, a, sum, st, dr, smax, i, x, y;
fscanf( fin, "%d", &n );
smax = 1 << 31;
sum = 0;
x = 1;
for ( i = 0; i < n; i ++ ) {
fscanf( fin, "%d", &a );
if ( sum < 0 ) {
sum = a;
x = y = i + 1;
}
else {
sum += a;
y = i + 1;
}
if ( sum > smax ) {
smax = sum;
st = x;
dr = y;
}
}
fprintf( fout, "%d %d %d\n", smax, st, dr );
fclose( fin );
fclose( fout );
return 0;
}