Intersection d'objets avec priorités

Go Hard structs

Tâche «Intersection d'objets avec priorités»

Étant donnés deux ensembles de structures décrivant des objets avec un identifiant, un type et une priorité. Il faut trouver tous les objets qui sont présents dans les deux ensembles (ayant le même identifiant et le même type), et pour chaque tel objet, afficher son identifiant, son type et la priorité minimale parmi les deux ensembles. Si un objet apparaît plus d'une fois dans un même ensemble, seule la première occurrence est prise en compte. Afficher le résultat par ordre croissant d'identifiant, et en cas d'égalité, par type (ordre lexicographique).

Format d\ entrée

Sur la première ligne, un entier N — le nombre d'objets dans le premier ensemble. Ensuite N lignes, chacune contenant un identifiant (nombre entier), un type (chaîne sans espaces) et une priorité (nombre entier) séparés par un espace. Sur la ligne suivante, un entier M — le nombre d'objets dans le deuxième ensemble. Ensuite M lignes dans le même format.

Format de sortie

Pour chaque objet en intersection, afficher une ligne : identifiant, type, priorité minimale séparés par un espace. Les lignes sont triées par ordre croissant d'identifiant, et en cas d'égalité, par type en ordre lexicographique. S'il n'y a aucune intersection, afficher 'none'.

Exemples

Exemple 1

ENTRÉE
3 1 a 10 2 b 20 3 c 30 2 2 b 15 3 c 25
SORTIE
2 b 15 3 c 25

Exemple 2

ENTRÉE
2 1 x 5 2 y 10 2 1 x 7 2 y 12
SORTIE
1 x 5 2 y 10

Exemple 3

ENTRÉE
1 2 3 4 3 4 5 6
SORTIE
none

Exemple 4

ENTRÉE
1 1 2 2 2 2 3 3
SORTIE
none
main.go