#include <cassert>
#include <cstdlib>
#include <iostream>

	void get_min_median_max
		(float a, float b, float c, float & min, float & median, float & max) {
		if (a <= b) {
			min			= a;
			median			= b;
		} else {
			min			= b;
			median			= a;
		}
		if (median <= c) {
			max			= c;
		} else if (c < min) {
			max			= median;
			median			= min;
			min			= c;
		} else {
			max			= median;
			median			= c;
		}
		assert(min <= median && median <= max); // postcondition
		// assert(set_of(min, median, max) == set_of(a, b, c)); // postcondition
	}

	int main (int argc, char * argv[]) {
		if (argc < 4) {
			std::cout << "Please call triple with three float arguments!";
		} else {
			float min, median, max;
			get_min_median_max
				(float(std::atof(argv[1])), float(std::atof(argv[2])), float(std::atof(argv[3])),
				 min, median, max);
			std::cout << 
				"minimum: " << min << ", median: " << median << ", maximum: " << max;
		}
		std::cout << std::endl;
		return 0;
	}
