#!/usr/bin/python3 from collections import defaultdict # Polohy všech trub a hlásičů (uspořádané vzestupně) trouby = [] hlasice = [] # Načteme vstup n = int(input()) for _ in range(n): w = input().split() pozice, typ = int(w[0]), w[1] if typ == 'T': trouby.append(pozice) else: hlasice.append(pozice) # Pro každý čas si pamatujeme, které hlásiče sepnou. # defaultdict(list) je slovník, jehož klíče jsou časy a hodnoty # jsou seznamy hlásičů; pokud se zeptáme na zatím neznámý klíč, # Python automaticky doplní prázdný seznam. sepne_v_case = defaultdict(list) ti = 0 # pozice v seznamu trub tn = len(trouby) # délka seznamu trub for h in hlasice: # Procházíme všechny hlásiče # Pro každý hlásič chceme najít 2. nejbližší troubu. Uděláme to tak, # že vybereme 2 trouby před hlásičem a 2 po něm, načež tyto 4 trouby # uspořádáme podle vzdálenosti od hlásiče. # Najdeme pozici hlásiče mezi troubami while ti < tn and trouby[ti] < h: ti += 1 delta = sorted([ abs(t-h) for t in trouby[max(0, ti-2) : ti+2] ]) sepne = delta[1] sepne_v_case[sepne].append(h) # Vypíšeme časy sepnutí a hlásiče k nim (všimněte si, že pokud v jeden čas # sepne víc hlásičů, máme je uložené ve správném pořadí). for cas in sorted(sepne_v_case.keys()): for h in sepne_v_case[cas]: print(h)