최소 힙 루트를 경계로 사용
상위 K를 유지할 때 루트보다 작은 값은 버리고 큰 값만 교체해 메모리를 줄입니다.
Top-K의 핵심은 모든 값을 정렬하지 않고 현재 K개 후보의 경계만 유지하는 것입니다. 출력 요구가 정렬인지도 따로 확인해야 합니다.
상위 K를 유지할 때 루트보다 작은 값은 버리고 큰 값만 교체해 메모리를 줄입니다.
누적 Top-K인지, 일정 구간마다 다시 계산하는지에 따라 stale 처리와 상태 초기화가 달라집니다.
점수가 같을 때 사용자 ID, 시각, 입력 순서 중 어떤 기준을 따를지 비교 키로 고정합니다.