Cod sursa(job #672424)

Utilizator nicnic28nichita trita nicnic28 Data 2 februarie 2012 09:30:56
Problema Secventa 2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
using namespace std;

const int N=50001;
int k,v[N],i,smax,stc,stmax,drmax,n,sum[N],sc;

void read(){
	scanf("%d%d",&n,&k);
	for(i=1 ; i<=n ; i++)
		scanf("%d",&v[i]);
}
void sume(){
	for (i=1 ; i<=n ; i++)
		sum[i]=sum[i-1]+v[i];
}
int main(){
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);
	read();
	sume();
	sc = smax = sum[k];
	stmax = 1;
	drmax = k;
	stc = 1;
	for(i=k+1 ; i<=n ; i++){
		if (sum[i]-sum[k]<=sc+v[i]){
			sc+=v[i];
		}else{
			sc=sum[i]-sum[i-k];
			stc=i-k+1;
		}
		if(sc>smax){
			smax=sc;
			stmax=stc;
			drmax=i;
		}
	}
	printf("%d %d %d\n",stmax,drmax,smax);
	return 0;
}