//! Function to add a participant to the participant group, while checking that its ID is not already in use.
	void addParticipant(Participant &p)
	{
		if(_participants.find(p.getID())!=_participants.end())
			throw std::runtime_error("Duplicate participant ID!");
		_participants[p.getID()] = p;
	}
	//! Function to add the specified participant in the list of impossible recipients for this participant.
	void addImpossibleRecipient(const Participant &p)
	{
		_impossible_recipients.push_back(p.getID());
	}