Data Warehouse Design and Double Dipping
I don't see why you can't have a factless fact table, with the Event, Athlete, and Country as dimensions. You are using the table to record events, rather than measures.

I guess that athletes can change countries for different Olympics, so it is a bit tricky to include them in the same hierarchy, though it could be a slowly changing dimension.

You would use Count(*) as the aggregation, instead of Sum(number_of_medals).