Cod sursa(job #1775190)

Utilizator priboiraduPriboi Radu Bogdan priboiradu Data 9 octombrie 2016 23:52:54
Problema Subsecventa de suma maxima Scor 95
Compilator c Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>

int max( int a, int b ) {
    if ( a > b )
        return a;
    return b;
}

int main() {
    FILE *fin, *fout;
    int n, i, smax, nr, s, x, st, dr, j;
    fin = fopen( "ssm.in", "r" );
    fout = fopen( "ssm.out", "w" );
    fscanf( fin, "%d", &n );
    smax = 0;
    fscanf( fin, "%d", &nr );
    s = nr;
    smax = s;
    j = 0;
    for ( i = 1; i < n; i++ ) {
        fscanf( fin, "%d", &nr );
        x = max( nr, s + nr );
        if ( smax < x ) {
            smax = x;
            dr = i + 1;
            st = j + 1;
        }
        if ( nr > s + nr )
            j = i;
        s = x;
    }
    fprintf( fout, "%d %d %d", smax, st, dr );
    fclose( fin );
    fclose( fout );
    return 0;
}