Bitovi
Ποιό ήρθε πρώτο, το αβγό ή η κότα; Είναι καλύτερο να ζήσει κανείς εκατό χρόνια ως εκατομμυριούχος ή επτά μέρες στη φτώχεια; Πώς να γίνει κανείς γκραν μάστερ στο σκάκι; Πώς ανοίγουν τα πατζούρια; Πώς περνάμε τις τελικές εξετάσεις; Πώς να εκπαιδεύσετε ένα δράκο; Αυτά είναι μερικά ενδιαφέροντα ερωτήματα που μπορούμε να τα σκεφτούμε μετά τον διαγωνισμό, αλλά τώρα σας προσφέρουμε ένα λιγότερο ενδιαφέρον πρόβλημα πληροφορικής.
Σας δίνονται δύο σύνολα αριθμών και
μεγέθους
.
Σε μία κίνηση, μπορείτε να επιλέξετε ένα αυθαίρετο στοιχείο από το σύνολο
και να αλλάξετε ένα αυθαίρετο ψηφίο (bit) στη δυαδική του αναπαράσταση.
Ο αριθμός που προκύπτει δεν πρέπει να ανήκει στο σύνολο
αμέσως πριν την αλλαγή.
Για παράδειγμα, ο αριθμός στο δυαδικό σύστημα είναι
.
Σε μία κίνηση, μπορεί να γίνει
,
,
, ή
αν αλλάξουμε το 4ο, 3ο, 2ο, ή 1ο ψηφίο του, αντίστοιχα.
Καθορίστε μια ακολουθία κινήσεων με την οποία το σύνολο
γίνεται ίσο με το σύνολο
.
Τα σύνολα είναι ίσα αν έχουν τον ίδιο αριθμό στοιχείων και δεν υπάρχει στοιχείο στο σύνολο
που δεν ανήκει στο σύνολο
.
Σημείωση: Ο αριθμός των κινήσεων δεν χρειάζεται να είναι ελάχιστος, αλλά πρέπει να ικανοποιεί τους περιορισμούς του προβλήματος.
Είσοδος
Η πρώτη γραμμή θα περιέχει τον ακέραιο , το μέγεθος των συνόλων
και
.
Η δεύτερη γραμμή θα περιέχει
διαφορετικούς ακέραιους
, τα στοιχεία του συνόλου
.
Η τρίτη γραμμή θα περιέχει
διαφορετικούς ακέραιους
, τα στοιχεία του συνόλου
.
Έξοδος
Στην πρώτη γραμμή, εκτυπώστε τον αριθμό των απαιτούμενων κινήσεων.
Στις υπόλοιπες γραμμές, εκτυπώστε τους αριθμούς και
- αλλάζουμε τον αριθμό
από το σύνολο
στον αριθμό
.
Οι αριθμοί
και
πρέπει να διαφέρουν ακριβώς σε ένα bit, και πρέπει να ισχύει ότι
και
τη στιγμή που εκτελούμε την κίνηση.
Βαθμολογία
Υποπρόβλημα | Βαθμοί | Περιορισμοί |
1 | 10 | |
2 | 15 | |
3 | 30 | |
4 | 15 | Κανένας επιπλέον περιορισμός. |
Παραδείγματα
input
3
0 1 2
1 2 3
output
2
1 3
0 1
Επεξήγηση του πρώτου παραδείγματος:
Εάν πρώτα κάνουμε την κίνηση
και στη συνέχεια την
, μεταξύ αυτών των δύο κινήσεων, το σύνολο
θα είχε δύο ίδια στοιχεία, το οποίο δεν επιτρέπεται από την εκφώνηση του προβλήματος. Μια άλλη δυνατή λύση είναι η
,
.
input
3
4 8 31
0 4 8
output
5
31 30
30 28
28 24
24 16
16 0
Επεξήγηση του δεύτερου παραδείγματος:
Το . Αφαιρώντας bits από το λιγότερο σημαντικό προς το πιο σημαντικό, λαμβάνουμε τους αριθμούς
,
,
,
, και
σε ακολουθία. Μετά από όλες τις κινήσεις, το σύνολο
γίνεται ίσο με το σύνολο
.
input
5
0 1 2 4 5
7 6 5 3 2
output
9
1 3
3 7
0 1
1 0
2 6
0 2
7 3
5 7
4 5
Comments