Cod sursa(job #717563)

Utilizator Stefana_fFratean Stefana Stefana_f Data 19 martie 2012 23:55:40
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
# include <fstream>
# include <iostream>
using namespace std;

void Citire(long sir[], unsigned long &n, unsigned long &k)
{
	ifstream f("secventa.in");
	unsigned long i;
	f >>n;
	f >>k;
	for (i=0;i<n;i++)
		f >> sir[i];
	f.close();
}

void Scriere(unsigned long a, unsigned long b, long minim)
{
	ofstream g("secventa.out");
	g << a <<" " <<b <<" " <<minim;
	g.close();
}

void Secv(long sir[], unsigned long n, unsigned long k, unsigned long &incp, long &secvMin)
{
	long minim;
	unsigned long i=0,j,poz,pozMin,incep;
	secvMin = sir[0];
	pozMin = 0;
	incp = 0;
	for(i=1;i<k;i++){
		if (sir[i]< secvMin){
			secvMin = sir[i];
			pozMin = i;
		}
	}
	i = pozMin + 1;
	while (i < n-k+1){
		incep = i;
		minim = sir[i];
		poz = i;
		for(j= i+1; j < k + i; j++){
			if (sir[j]< minim){
				minim = sir[j];
				poz = j;
			}
		}
		if (minim > secvMin){
			secvMin = minim;
			pozMin = poz;
			incp = incep;
		}
		i = poz+1;
	}
}

int main(){
long sir[500000];
unsigned long n, k, incp=0;
long secvMin=0;

Citire(sir,n,k);
Secv(sir,n,k,incp,secvMin);
Scriere(incp+1, incp+k, secvMin);
return 0;
}