COI-11 (2011) - 1 (Sort)

View as PDF

Submit solution

Points: 50 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Sort

Για να αυτοματοποιήσει τον φόρτο εργασίας του στο εργοστάσιο, ο Mirko θέλει να χρησιμοποιήσει το παλιό ρομπότ για την ταξινόμηση κουτιών. Υπάρχουν N κουτιά στο εργοστάσιο και κάθε κουτί φέρει ετικέτα με έναν μοναδικό ακέραιο αριθμό στο εύρος 1 έως N. Mirko πρέπει να ταξινομήσει τα κουτιά με την αύξουσα σειρά των ετικετών τους.
Το ρομπότ ταξινόμησης μπορεί να εκτελέσει μόνο μία συγκεκριμένη λειτουργία: δεδομένης μιας ακολουθίας θέσεων, το ρομπότ μπορεί να κάνει μια κυκλική εναλλαγή των κουτιών σε αυτές τις θέσεις. Η δεδομένη ακολουθία δεν περιέχει καμία θέση περισσότερο από μια φορά.
Για παράδειγμα, ας υποθέσουμε ότι τα κουτιά είναι επί του παρόντος σε σειρά [4,\,1,\,5,\,2,\,3] και ο Mirko παρέχει στο ρομπότ την ακολουθία [2,\,1,\,3]. Στη συνέχεια, το ρομπότ θα αναδιατάξει τα κουτιά έτσι ώστε να μεταφερθεί το δεύτερο κουτί στη θέση 1, το πρώτο κουτί θα πάει στη θέση 3 και το τρίτο θα πάρει τη θέση 2. Η ακολουθία των ετικετών που θα ληφθεί είναι [1,\,5,\,4,\,2,\,3].
Γράψτε ένα πρόγραμμα που θα ταξινομεί τα κουτιά χρησιμοποιώντας τον ελάχιστο αριθμό πράξεων. Κάθε ακολουθία που δίνεται στο ρομπότ μπορεί να είναι αυθαίρετα μεγάλη.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει έναν ακέραιο αριθμό N (2 \le N \le 1\,000), τον αριθμό των κουτιών στο εργοστάσιο.
Η ακόλουθη γραμμή περιέχει N ακέραιους αριθμούς στο εύρος 1 έως N, ετικέτες των κουτιών με τη σειρά. Δεν εμφανίζεται ακέραιος αριθμός εις διπλούν.

Έξοδος

Η πρώτη γραμμή πρέπει να περιέχει τον ακέραιο X, τον ελάχιστο αριθμό απαιτούμενων πράξεων.
Οι ακόλουθες γραμμές X πρέπει να περιέχουν τις ακολουθίες που δίνονται στο ρομπότ, μία ακολουθία ανά γραμμή.
Κάθε γραμμή πρέπει να ξεκινά με το μήκος της ακολουθίας, ακολουθούμενη από άνω και κάτω τελεία, ένα κενό και μετά την ακολουθία θέσεων διαχωρισμένη από διαστήματα.
ΣΗΜΕΙΩΣΗ: Μπορεί να υπάρχουν πολλές λύσεις και μπορείτε να εκτυπώσετε οποιαδήποτε από αυτές.

Βαθμολογία

Το πρόγραμμα θα λάβει το 50% των πόντων που αποδίδονται σε αυτό το αρχείο ελέγχου, εάν ο αριθμός των λειτουργιών δεν είναι ελάχιστος αλλά δεν είναι μεγαλύτερος από 1\,000. Φυσικά, οι παρεχόμενες πράξεις θα πρέπει να παράγουν μια ταξινομημένη ακολουθία.

Παραδείγματα

input

3
3 2 1

output

1
2: 3 1

input

5
2 3 1 5 4

output

2
3: 1 2 3
2: 5 4

input

5
1 2 3 4 5

output

0

Comments

There are no comments at the moment.