Finalmente, o local
do novo aeroporto de Lisboa está escolhido: Alcochete. Construído de
raiz a pensar no futuro, terá um imenso volume de aviões sempre a
descolar e a aterrar. Gerir todo este "engarrafamento" aéreo não é
nada fácil. A missão dos controladores de tráfego aéreo é precisamente
garantir um fluxo de aviões seguro. São eles que, a partir da torre de
controlo, fornecem indicações e autorizações de voo, de acordo com as
características da aeronave e do contexto do momento. Podem pedir aos
pilotos para alterar factores como a rota, a altitude ou a
velocidade. Como deves imaginar, todo este trabalho não é
completamente manual. Programas de computador muito elaborados
auxiliam os controladores e garantem a eficácia do sistema.
Uma empresa que faz software de controlo aéreo contratou-te
a ti para ajudar. Um dos muitos sistemas instalados avisa do perigo de
colisão entre dois aviões. Se dois aviões estiverem demasiado
próximos, um alarme dispara imediatamente. Basicamente, a empresa quer
que programes uma maneira eficiente de detectar isto, descobrindo no
meio de todo o tráfego aéreo quais são os dois aviões mais próximos um
do outro. Como simplificação, as posições dos aviões são dadas como
em coordenadas (X,Y), em relação a uma determinada origem. A altitude,
direcção e velocidade do avião pode ser ignoradas. Se dois aviões
tiverem posições (X1,Y1) e
(X2,Y2), a distância entre eles é dada pela
fórmula .
Cada avião é identificado por um código alfanumérico. Um exemplo de um tráfego aéreo seria o que é dado na figura seguinte.
Neste caso, os dois aviões mais próximos seriam o TP420 e o IB260, a uma distância de .
Escreve um programa que dadas as localizações (X,Y) de um conjunto de aviões, calcula qual o par de aviões que está mais perto um do outro.
Na primeira linha de input vem um número inteiro A, indicando o número de aviões a considerar (2 ≤ A ≤ 50 000).
Seguem-se exactamente A linhas, cada uma delas indicando um avião no formato "CODIGO X Y" onde CODIGO é uma palavra contendo apenas letras e/ou números (de tamanho máximo 10) e X e Y são as coordenadas da localização do avião (0 ≤ X,Y ≤ 40 000). É garantido que nunca estarão dois aviões exactamente no mesmo ponto.
O output é constituído por uma única linha contendo os códigos do par de aviões que estão mais próximos um do outro, no formato "CODIGO1 CODIGO2". Deve sempre vir primeiro o código do avião que aparecer também primeiro no input.
É garantido que nos casos de teste dados a solução é única, ou seja, existe apenas um par de aviões que está à distância mínima.
6 TP270 1.0 4.0 TP420 2.0 3.0 LF120 3.5 3.5 LF390 3.5 0.5 IB460 1.0 1.0 IB260 2.5 2.0
TP420 IB260