Cod sursa(job #1099223)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 5 februarie 2014 17:45:11
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <iostream>
#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;
    int sum, maxsum = -(((1<<30)-1) * 2), maxim, pozmaxim;

   // cout<<maxsum;

    fscanf( f, "%d%d", &n, &k);

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

    maxim = maxsum;
    for( int i = n - k + 1 ; i >= 1 ; --i ) {
        if( s[i + k - 1] > maxim ) {
            maxim = s[i + k - 1];
            pozmaxim = i + k - 1;
        }
        sum = maxim - s[i-1];
        if( sum > maxsum ) {
            maxsum = sum;
            start = i;
            stop = pozmaxim;
        }

    }

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

    fclose( f );
    fclose( g );

    return 0;
}