Cod sursa(job #89072)

Utilizator catalinasrbcatalinasrb catalinasrb Data 5 octombrie 2007 19:13:26
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<iostream>
#include<fstream>
#include<values.h>
using namespace std;
long n,k,a[50],b[4],c[4];
int baza=MAXINT;
void citire(){
	ifstream fin("secventa.in");
	fin>>n>>k;
	for(int i=0;i<n;i++)
		fin>>a[i];
	fin.close();
}
void aflare(){
	int baz=MAXINT;
		b[0]=a[0];
		b[1]=a[k-1];
		for(short i=0;i<k;i++)
			if(a[i]<baz)
				baz=a[i];
		 c[0]=0;
		 c[1]=k-1;
		 int u=k;
		 while(a[u]>baz){
			u++;
			c[1]=u;
			b[1]=a[u];
		 }
	baza=baz;
	for(int o=k;o<=n-k;o++){
    	baz=MAXINT;
		int l=o;
		for(int x=0;x<k;x++){
			if(a[l]<baz){
				baz=a[l];
				b[2]=a[l];
				c[2]=l;
			}
			b[3]=a[l];
			c[3]=l; 
            l++;
		}
		while(a[l]>baz){
			b[3]=a[l];
			c[3]=l;
			l++;
		}
		if(baz>baza){
        	baza=baz;
			b[0]=b[2];
			b[1]=b[3];
			c[0]=c[2];
			c[1]=c[3];
		}
	if(baz==baza && c[1]<c[3]){
		b[0]=b[2];
		b[1]=b[3];
		c[0]=c[2];
		c[1]=c[3];
		}
	}
}
void afisare(){
	ofstream fout("secventa.out");
	fout<<c[0]+1<<" "<<c[1]+1<<" "<<baza;
	fout.close();
}

int main(){
	citire();
	aflare();
	afisare();
	return 0;
}