Cod sursa(job #308273)

Utilizator GulosSerban Petrescu Gulos Data 26 aprilie 2009 17:24:18
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<iostream>
#include<fstream>

using namespace std;

int main(){
	ifstream fin("secv2.in");
	ofstream fout("secv2.out");
	int n,k,s[50002],i,a,m,M,en[2],st[2]={1,1},r[2];
	fin>>n>>k;
	fin>>s[0];
	en[0]=en[1]=n-1;
	for (i=1;i<n;i++){
		fin>>s[i];
		s[i]+=s[i-1];
	}
	a=n-k;
	m=1000000000;
	for (i=0;i<a;i++)
		if (s[i]<m){
			m=s[i];
			st[0]=i+2;
		}
	M=-1000000000;
	for (i=st[0]+k-2;i<n;i++)
		if (M<s[i]){
			M=s[i];
			en[0]=i+1;
		}
	if (m==1000000000)
		r[0]=M;
	else
		if (M==-1000000000)
			r[0]=m;
		else
			r[0]=M-m;
	M=-1000000000;
	m=1000000000;
	for (i=n-1;i>=k;i--)
		if (s[i]>m){
			M=s[i];
			en[1]=i+1;
		}
	for (i=0;i<en[1]-k;i++)
		if (m>s[i]){
			m=s[i];
			st[1]=i+2;
		}
	if (m==1000000000)
		r[1]=M;
	else
		if (M==-1000000000)
			r[1]=m;
		else
			r[1]=M-m;
	if (r[0]>r[1])
		fout<<st[0]<<" "<<en[0]<<" "<<r[0];
	else
		fout<<st[1]<<" "<<en[1]<<" "<<r[1];
	fout.close();
}