Cod sursa(job #228270)

Utilizator galacticaBattlestar galactica Data 6 decembrie 2008 20:50:43
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
#define N 50100
int s[N],m[N],poz[N];
int main(){
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);
	int n,k,i,max,pmin,pmax;
	scanf("%d%d",&n,&k);
	m[0]=1000000000;
	for(i=1;i<=n;++i){
		scanf("%d",&s[i]);
		s[i]+=s[i-1];
		if(m[i-1]>=s[i]){
			m[i]=s[i];
			poz[i]=i;
		}
		else{
			m[i]=m[i-1];
			poz[i]=poz[i-1];
		}
	}
	max=s[k];
	pmin=1;
	pmax=k;
	for(i=k+1;i<=n;++i){
		if(s[i]-m[i-k-1]>max){
			max=s[i]-m[i-k-1];
			pmin=poz[i-k-1];
			pmax=i;
		}
	}
	printf("%d %d %d\n",pmin+1,pmax,max);
	fclose(stdin);
	fclose(stdout);
	return 0;
}