Cod sursa(job #1099210)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 5 februarie 2014 17:31:25
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <algorithm>
#define MAXN 50002
using namespace std;

int s[MAXN];

int main () {
    FILE *f, *g;
    f = fopen( "secv2.in", "r" );
    g = fopen( "secv2.out", "w" );

    int n, k, start, stop;
    long long sum, maxsum = -9999999999;

    fscanf( f, "%d%d%d", &n, &k, &s[1] );

    for( int i = 2 ; i <= n ; ++i ) {
        fscanf( f, "%d", &s[i] );
        s[i] += s[i-1];
    }

    s[n+1] = maxsum;
    for( int i = n - k + 1 ; i >= 1 ; --i ) {
        sum = max( s[i + k + 1], s[i + k] ) - s[i-1];
        if( sum > maxsum ) {
            maxsum = sum;
            start = i;
            stop = s[i+k+1] > s[i+k] ? i + k + 1 : i + k;
        }

    }

    fprintf( g, "%d %d %lld\n", start, stop, maxsum );

    fclose( f );
    fclose( g );

    return 0;
}