Y el ganador es...
En muchos de los concursos de programación, como en el que hoy participas, cada vez que un equipo resuelve correctamente un problema recibe un globo del color asociado a ese problema. Al final, quien más globos consigue no sólo tiene su ordenador más colorido, sino que será el ganador del concurso.
Dada la lista de los globos colocados a cada equipo, ¿eres capaz de decir quién es el ganador?
Entrada
La entrada estará compuesta de múltiples casos de prueba, cada uno de ellos simulando un concurso. Cada caso de prueba comienza con una línea con dos números, el primero de ellos indicando el número de equipos participantes (entre 1 y 20) y el segundo el número de globos entregados.
A continuación aparecerá una línea por cada globo entregado, con el número del equipo que lo ha recibido (entre 1 y el número de equipos) y el color (una palabra de un máximo de 20 letras). Un equipo nunca recibirá dos veces el mismo color de globo.
La entrada terminará cuando se llegue a un concurso sin equipos ni globos.
Salida
Para cada caso de prueba se debe escribir el número del equipo ganador en una línea. En caso de empate, se escribirá EMPATE.
Entrada de ejemplo
4 3
2 Rojo
3 Amarillo
3 Azul
4 4
2 Rojo
3 Amarillo
3 Azul
2 Verde
0 0
Salida de ejemplo
3
EMPATE
Solución propuesta
if __name__ == '__main__':
# Leer número equipos y globos
equipos, globos = [int(x) for x in list(input().split(' '))]
while equipos != 0 and globos != 0 and 1 <= equipos <= 20:
# Generar el diccionario para las puntuaciones
# se utiliza diccionario porque el equipo más bajo es el 1
# Además, al ser un diccionario no podemos aprovechar las
# listas por comprensión
puntuaciones_equipos = {}
for x in range(1, equipos+1):
puntuaciones_equipos[x] = 0
# Se leen los globos ganados por cada equipo
# no nos importa el color, por eso no se utiliza
for x in range(globos):
equipo, color = [x for x in list(input().split(' '))]
equipo = int(equipo)
puntuaciones_equipos[equipo] += 1
# Se busca el más alto o máximo
# Si dos equipos tienen la misma puntuación, entonces hay empate
# Si otro equipo tiene más puntuación, rompe el empate
equipo_ganador = 0
empate = False
for equipo in puntuaciones_equipos.keys():
if puntuaciones_equipos[equipo] > puntuaciones_equipos[equipo_ganador]:
equipo_ganador = equipo
empate = False
elif puntuaciones_equipos[equipo] == puntuaciones_equipos[equipo_ganador]:
empate = True
if empate:
print("EMPATE")
else:
print(equipo_ganador)
equipos, globos = [int(x) for x in list(input().split(' '))]