Submit solution
C++, Java
Points:
10 (partial)
Time limit:
1.0s
Memory limit:
64M
Problem types
Allowed languages
XOR Sort
Δίνεται ακέραιος και πίνακας
αποτελούμενος από
μη-αρνητικους ακεραίους, με αρίθμηση από το
. Επιτρέπεται να κάνετε την ακόλουθη πράξη στον πίνακα:
- Διάλεξε οποιαδήποτε θέση του πίνακα
- Διάλεξε μία διπλανή θέση του πίνακα
- Αντικατάστησε το
με την δυαδική πράξη XOR μεταξύ των
:
Στόχος είναι να μετατρέψετε τον σε ταξινομημένο πίνακα:
- Αν
, τότε πρέπει να είναι γνησίως αύξων:
- Αν
, τότε πρέπει να είναι μη-φθίνων:
Να βρείτε ακολουθία πράξεων που επιτυγχάνουν τον στόχο. Δεν χρειάζεται να βρείτε την μικρότερη ακολουθία, αρκεί να μην ξεπεράσουν τις .
Μορφή Εισόδου
Η πρώτη γραμμή περιέχει 2 ακεραίους . Η επόμενη γραμμή περιέχει
ακεραίους
.
Μορφή Εξόδου
Η πρώτη γραμμή περιέχει μοναδικό ακέραιο : το πλήθος των πράξεων. Ακολουθούν
γραμμές που περιγράφουν τις πράξεις σε χρονολογική σειρά: κάθε γραμμή περιέχει τους 2 ακεραίους
, όπως ορίζονται παραπάνω.
Περιορισμοί - Υποπροβλήματα
Βαθμολογία | Περιορισμοί |
---|---|
Παράδειγμα 1
Είσοδος:
5 1
3 2 8 4 1
Έξοδος:
3
1 2
4 3
5 4
Εξήγηση:
[3, 2, 8, 4, 1] => [1, 2, 8, 4, 1] =>
=> [1, 2, 8, 12, 1] => [1, 2, 8, 12, 13]
Παράδειγμα 2
Είσοδος:
5 2
4 4 2 0 1
Έξοδος:
3
3 2
4 3
5 4
Εξήγηση:
[4, 4, 2, 0, 1] => [4, 4, 6, 0, 1] =>
=> [4, 4, 6, 6, 1] => [4, 4, 6, 6, 7]
Comments