Cod sursa(job #782951)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 31 august 2012 15:52:50
Problema Secventa Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
using namespace std;
int v1[500001],v[500001],v2[500001],v3[500001];
int main(){
	int n,k,imare,imic,i,j,min,max;
	ifstream in("secventa.in");
	ofstream out("secventa.out");
	in>>n>>k;
	imare=k-1;
	imic=0;
	for(i=1;i<=n;i++)
		in>>v[i];
	j=0;
	if(n==k){
		min=33333;
		for(i=1;i<=n;i++)
			if(min>v[i])
				min=v[i];
		for(i=1;i<=n;i++){
			if(min==v[i]){
				out<<"1"<<' '<<n<<' ';
				i=n+1;
			}
		}
	out<<min;
	}else {
		if(k==1){
			max=-33333;
			for(i=1;i<=n;i++)
				if(max<v[i])
					max=v[i];
			for(i=1;i<=n;i++){
				if(max==v[i]){
					out<<i<<' '<<i<<' ';
					i=n+1;
				}
			}				
		out<<max;
		}else {
	while(imare<n){
		j++;
		imic++;
		imare++;
		min=33333;
		for(i=imic;i<=imare;i++){
			if(min>v[i])
				min=v[i];
		}
		v1[j]=imic;
		v2[j]=imare;
		v3[j]=min;
	}
	max=-33333;
	for(i=1;i<=j;i++)
		if(max<v3[i])
			max=v3[i];
	for(i=1;i<=j;i++){
		if(max==v3[i]){
			out<<v1[i]<<' '<<v2[i]<<' '<<v3[i];
			i=j+1;
		}
	}
		}
	}
	return 0;
}