Cod sursa(job #2290305)
| Utilizator | Data | 26 noiembrie 2018 11:45:18 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fin, *fout;
fin = fopen ( "ssm.in", "r" );
fout = fopen ( "ssm.out", "w" );
int smax, n, sc, x, i, p, pm, m, um;
fscanf( fin, "%d", &n );
sc = 0;
p = 1;
smax = 1 << 31;
for ( i = 1; i <= n; i ++ ){
fscanf( fin, "%d", &x );
if ( x > sc + x ){
sc = x;
p = i;
}
else {
sc += x;
}
if ( sc > smax ){
smax = sc;
pm = p;
um = i;
}
}
fprintf( fout, "%d %d %d", smax, pm, um );
fclose ( fin );
fclose ( fout );
return 0;
}
