#include <iostream>
#include <algorithm> // Fichier à inclure pour disposer de la fonction `sort(...)'.
#include <vector>    // Fichier à inclure pour utiliser un `vector' de la STL.

// Ce programme lit une suite de nombres sur le flux d'entrée standard.
// Il affiche la médiane de ces nombres.
// Il doit être appelé en redirigeant le flux d'entrée standard en utili-
// sant par exemple la commande suivante :
//           a < nombres.txt
// où `nombres.txt' est un fichier contenant la suite de nombres.

// Version 3 : utilisation d'un `vector' de la STL.

using namespace std ;

int main() {
	// Déclaration d'un vecteur de `double' de la STL. Cette variable est une
	// variable automatique mais, à notre insu, elle va allouer de la mémoire
	// sur le tas pour que le tableau puisse contenir un nombre suffisant
	// d'éléments.
	vector<double> tableau ;
	double x ;
	while ( cin >> x )
		// La méthode `push_back(...)' permet de rajouter un élément à la fin.
		tableau.push_back(x) ;
	// La méthode `size()' retourne le nombre d'éléments dans le vecteur.
	size_t nombre = tableau.size() ;
	sort(&tableau[0], &tableau[nombre]) ;
	cout << "La médiane est " << tableau[nombre/2] ;
	return 0 ;
	// Il n'y a pas de fuites de mémoire : la variable automatique `tableau'
	// est détruite mais sa destruction conduit à libérér la mémoire précé-
	// demment allouée sur le tas.
}
