#!/usr/bin/env python3 from collections import deque, defaultdict from dataclasses import dataclass from math import inf from typing import Optional @dataclass class Udalost: cas: int typ: str fronta1: Optional[int] = None fronta2: Optional[int] = None # Načteme všechny události front, pocet_udalosti = map(int, input().split()) udalosti = [] for _ in range(pocet_udalosti): cas, typ = input().split() dalsi = [] if typ != "N": dalsi = list(map(int, input().split())) udalosti.append(Udalost(int(cas), typ, *dalsi)) # Odsimulujeme všechny události prisli = [] odesli = [] fronty = defaultdict(lambda: deque([])) for udalost in udalosti: if udalost.typ == "N": fronty[0].append(len(prisli)) prisli.append(udalost.cas) odesli.append(inf) elif udalost.typ == "P": fronty[udalost.fronta2].append(fronty[udalost.fronta1].popleft()) elif udalost.typ == "V": odesli[fronty[udalost.fronta1].popleft()] = udalost.cas # Vybereme nejlepšího člověka, se kterým se vyměnit nejlepsi = inf, inf for i in range(len(prisli)): cas = odesli[i] - prisli[i] + 1 + 1 # +1 protože se počítá čas kdy jsme přišli # a +1 za to, že musíme přijít před daným člověkem if cas < nejlepsi[0]: nejlepsi = cas, prisli[i] - 1 print(*nejlepsi)