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