Cod sursa(job #1363242)

Utilizator BLz0rDospra Cristian BLz0r Data 26 februarie 2015 20:20:17
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
using namespace std;

#define Nmax 100002
#define inf 0x3f3f3f3f

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

int v[Nmax];

int main(){
	int N, K, min = inf, max = -inf, pop = 1, st, dr;
	
	fscanf ( f, "%d%d", &N, &K );
	
	for ( int i = 1; i <= N; ++i ){
		fscanf ( f, "%d", &v[i] );
		v[i] += v[i-1];
	}
	
	for( int i = K; i <= N; ++i ){
		
        if ( v[i] >= max ){
			max = v[i];
			st = 1;
			dr = i;
		}
        if ( v[i] - min >= max && pop < i - K ){
			max = v[i] - min;
			st = pop + 1;
			dr = i;
		}
        if ( v[i-K] < min ){
			min = v[i-K];
			pop = i - K;
		}
    }
	
	fprintf ( g, "%d %d %d", st, dr, max );
	
	return 0;
}