#!/usr/bin/python3 # 33-Z1-2 best = (0, 0) num = int(input()) times = [] # Vytvoříme seznam událostí for l in range(num): start, end = map(int, input().split()) # Příjezd vlaku označíme -1, protože třídění seznamu dvojic probíhá po složkách a příjezdy chceme mít v setříděném seznamu událostí dříve než odjezdy. times.append( (start, -1) ) times.append( (end, 1) ) # Aktuální počet vlaků na nádraží count = 0 # Pythoní funkce sorted() nám seznam setřídí za O(n*logn) for time, start in sorted(times): # Za každý příjezd vlaku chceme přičíst jedničku, což je ekvivalentní odečtení -1. count -= start # Aktualizujeme maximum pokud je třeba best = max(best, (count, time)) count, time = best print(time, count)