Cod sursa(job #2290272)
Utilizator | Data | 26 noiembrie 2018 11:22:37 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.52 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, u;
fscanf( fin, "%d", &n );
sc = 0;
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;
u = i;
}
}
fprintf( fout, "%d %d %d", smax, p, u );
fclose ( fin );
fclose ( fout );
return 0;
}