#include <iostream>
#include <cstdlib>
#include <string>
#include <set>

struct item
{
	int score;
	std::string name;

	bool operator < (item const& it) const
	{
		return score < it.score;
	}
};

int main()
{
	typedef std::multiset<item> set;

	set myset;

	std::cout << "Maximum size: " << myset.max_size() << std::endl;

	for (int i=1; i<200; ++i)
	{
		item it;
		it.score = rand() % 10001;
		switch (rand() % 5)
		{
		case 0: it.name = "Markus"; break;
		case 1: it.name = "Kira"; break;
		case 2: it.name = "Lisa"; break;
		case 3: it.name = "Sandra"; break;
		case 4: it.name = "Tommy"; break;
		default:it.name = "Impossible"; break;
		}
		myset.insert(it);
	}

	set::const_reverse_iterator it;
	int c=0;
	for (it=myset.rbegin();it != myset.rend(); ++it)
	{
		if (it->name == "Markus")
		{
			std::cout << it->score << std::endl;
			if (++c == 10) break;
		}
	}
}

