namespace Marathons; public sealed class Participant { public readonly int StartNo; public readonly string Name; public readonly TimeSpan CompletionTime; public Participant(int startNo, string name, TimeSpan completionTime) { StartNo = startNo; Name = name; CompletionTime = completionTime; } public int CompareTo(Participant participant) { // Check if the completion time and startno is the same if (CompletionTime == participant.CompletionTime && StartNo == participant.StartNo) { return 0; } // Check if the completion time is the same if(CompletionTime == participant.CompletionTime) { return StartNo < participant.StartNo ? -1 : 1; } return CompletionTime < participant.CompletionTime ? -1 : 1; } public override string ToString() { return $"{Name} (Start# {StartNo:000}) finished in {CompletionTime}"; } }