Marcus is a running club coach.
He wants a program to analyse his members' weekly training distances (in km) to help them prepare for an upcoming half-marathon.
He wants to award Gold, Silver, and Bronze virtual badges to the three runners who cover the furthest distance, and also identify runners who may need extra support because they covered less than 12 km.
The program should process a structured dataset. Here is an example of the dataset included in the code:
# Test data
runners = [
{"id": "R203", "distance": 28.5},
{"id": "R109", "distance": 9.2},
{"id": "R402", "distance": 42.1},
{"id": "R115", "distance": 11.8},
{"id": "R301", "distance": 35.0},
{"id": "R504", "distance": 6.4},
{"id": "R220", "distance": 31.7}
]
Write a program in Python or an exam-style pseudocode to calculate and display:
Your program must work dynamically even if the number of runners in the dataset changes.