Schnittmenge von Objekten mit Prioritäten

Go Hard structs

Aufgabe «Schnittmenge von Objekten mit Prioritäten»

Gegeben sind zwei Mengen von Strukturen, die Objekte mit einer ID, einem Typ und einer Priorität beschreiben. Es müssen alle Objekte gefunden werden, die in beiden Mengen vorhanden sind (gleiche ID und gleicher Typ haben), und für jedes solche Objekt seine ID, seinen Typ und die minimale Priorität aus den beiden Mengen ausgegeben werden. Wenn ein Objekt in derselben Menge mehr als einmal vorkommt, wird nur das erste Vorkommen berücksichtigt. Das Ergebnis wird in aufsteigender Reihenfolge der ID ausgegeben, bei Gleichheit nach Typ (lexikografisch).

Eingabeformat

In der ersten Zeile eine ganze Zahl N – die Anzahl der Objekte in der ersten Menge. Dann N Zeilen, jede enthält die ID (ganze Zahl), den Typ (Zeichenkette ohne Leerzeichen) und die Priorität (ganze Zahl) durch Leerzeichen getrennt. In der nächsten Zeile eine ganze Zahl M – die Anzahl der Objekte in der zweiten Menge. Dann M Zeilen im gleichen Format.

Ausgabeformat

Für jedes sich überschneidende Objekt eine Zeile ausgeben: ID, Typ, minimale Priorität, durch Leerzeichen getrennt. Die Zeilen sind aufsteigend nach ID sortiert, bei Gleichheit lexikografisch nach Typ. Wenn es keine Schnittmenge gibt, 'none' ausgeben.

Beispiele

Beispiel 1

EINGABE
3 1 a 10 2 b 20 3 c 30 2 2 b 15 3 c 25
AUSGABE
2 b 15 3 c 25

Beispiel 2

EINGABE
2 1 x 5 2 y 10 2 1 x 7 2 y 12
AUSGABE
1 x 5 2 y 10

Beispiel 3

EINGABE
1 2 3 4 3 4 5 6
AUSGABE
none

Beispiel 4

EINGABE
1 1 2 2 2 2 3 3
AUSGABE
none
main.go