Cod sursa(job #263972)

Utilizator marinMari n marin Data 20 februarie 2009 23:59:27
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#define DIM 50002
#define INF 1250000001

long long S[DIM],M[DIM],A[DIM],P[DIM];
long long n,k,i,max,s,pMax,iMax,fMax;


int main(){
	FILE *f = fopen("secv2.in","r");
	S[0] = 0;
//	M[0] = INF;
	max = -INF;
	fscanf(f,"%lld %lld",&n,&k);
	fscanf(f,"%lld",&A[1]);
	M[1] = A[1];
	P[1] = 1;
	S[1] = A[1];
	for (i=2;i<=n;i++) {
		fscanf(f,"%lld",&A[i]);
		S[i] = S[i-1] + A[i];
		if (S[i]<M[i-1]){
			M[i] = S[i];
			P[i] = i;
		}
		else {
			M[i] = M[i-1];
			P[i] = P[i-1];
		}
		if (i>=k) {
			if (S[i]-M[i-k]>max) {
				max = S[i]-M[i-k];
				iMax = P[i-k]+1;
				fMax = i;
			}
		}
	}
	fclose(f);

	FILE *g = fopen("secv2.out","w");
	fprintf(g,"%lld %lld %lld",iMax,fMax,max);
	fclose(g);
	return 0;
}