Rurociag
Kod był wyświetlany 1265 razy.
    /*
  Name: Optymalne usytuowanie rurociągu
  Copyright: GPL GNU
  Date: 05-09-2007 22:07:17
  Description: 
  Profesor Olay jest konsultantem koncernu naftowego, który planuje budowę dużego
   rurociągu przebiegającego ze wschodu na zachód przez pola naftowe, na których 
   znajduje się n wież wiertniczych. Dla każdej wieży ma odchodzić odnoga głównego 
   rurociągu po najkrótszej możliwej drodze (albo na północ, albo na południe). 
   Napisz program, który wyznaczy optymalne położenie głównego rurociągu (czyli 
   takie, dla którego suma długości odnóg jest minimalna).
*/

/* coded by Przemysław Pastuszka
www.algorytmy.info */

#include <iostream>
#include <conio.h>
using namespace std;
int ZnajdzPozycje(int tab[], int p, int k)
{
	int i=p;
	for(int j=p;j<k;j++)
	{
		if(tab[j]<tab[k])
		{
			int temp=tab[j];
			tab[j]=tab[i];
			tab[i]=temp;
			i++;
		}
	}
	int temp=tab[k];
	tab[k]=tab[i];
	tab[i]=temp;
	return i;
}
int Odszukaj(int tab[],int p, int k, int szukane)
{
	int q=ZnajdzPozycje(tab,p,k);
	int z=q-p+1;
	if(z==szukane)
		return tab[q];
	if(szukane<z)
		return Odszukaj(tab,p,q-1,szukane);
	return Odszukaj(tab,q+1,k,szukane-z);
}
int main()
{
	cout<<"Ile wiez wiertniczych? ";
	int n;
	cin>>n;
	cout<<"Podaj wspolrzedne y tych wiez: ";
	int *tablica=new int[n];
	for(int i=0;i<n;i++)
		cin>>tablica[i];
	cout<<"Optymalnie polozony rurociag powinien miec wspolrzedna y rowna: "<<Odszukaj(tablica,0,n-1,n/2);
	getch();
	return 0;
}    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT