COCI-17 (2017) - Γύρος #5 - 4 (Karte)

View as PDF

Submit solution

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

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

… Πάρτε αυτά τα χαρτιά, σας λέω, ο ξάδερφός μου από τη Σουηδία τα έστειλε όταν η πείνα για πόλεμο κορυφώθηκε, και μείναμε να παίζουμε ράμι στα χαρακώματα.

Ντάνιελ: «Παίζουμε ράμι, ε;»

Domagoj: «Λοιπόν, εντάξει.»

Ντάνιελ: «Προσέξτε το τώρα. Έχετε μια τράπουλα με N φύλλα, όπου το ​το φύλλο έχει ένα αξίωμα γραμμένο σε αυτό με τη μορφή «Τουλάχιστον a_i φύλλα κάτω από αυτό περιέχουν έναν ψευδή ισχυρισμό.» Πρέπει να τα ανακατέψετε έτσι ώστε ακριβώς ​\(Κ\) κάρτες να περιέχουν ψευδή ισχυρισμό."

Domagoj: "Με καταστρέφεις σε αυτό το παιχνίδι κάθε φορά, από πού πήρες αυτές τις κάρτες"

Ντάνιελ: "Α, ο γέρος μου διοργανώνει τουρνουά με κάρτες, οπότε κάθε μέρα μου δίνει δωρεάν κάρτες, δέκα δολάρια ανά τράπουλα."

Ο στόχος σας είναι να βοηθήσετε τον Domagoj να λύσει την εργασία του Daniel. Καταχωρίστε τη σειρά με την οποία ο Domagoj πρέπει να τοποθετήσει τις κάρτες. Είναι επίσης πιθανό αυτό να είναι ένα κακόγουστο αστείο από την πλευρά του Daniel, και να μην υπάρχει πιθανή σειρά για να τοποθετηθούν τα φύλλα. Σε αυτήν την περίπτωση, η έξοδος είναι -1.

Είσοδος

Η πρώτη γραμμή περιέχει ακέραιους αριθμούς N και K \((1 \le N \le 5·10^5​, 0 \le K \le N)\). Η i-οστή από τις ακόλουθες γραμμές N περιέχει έναν ακέραιο αριθμό \(a_i(0 \le a_i \le 5·10^5)\).

Έξοδος

Εάν δεν υπάρχει η απαιτούμενη σειρά, βγάζουμε -1. Διαφορετικά, σε μία γραμμή, βγάζετε N​ ακέραιους αριθμούς διαχωρισμένους με κενά, τους αριθμούς πάνω στις κάρτες με τη σειρά από την κορυφή προς το κάτω μέρος της τράπουλας. Εάν υπάρχουν πολλές λύσεις, εξάγετε οποιαδήποτε.

Βαθμολογία

Σε περιπτώσεις δοκιμής αξίας 30% των συνολικών πόντων, θα ισχύει N \le 16. Σε πρόσθετες περιπτώσεις δοκιμών αξίας 40% των συνολικών πόντων, θα ισχύει N \le 2.000.

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

input

4 2
1
2
2
3

output

2 3 1 2

input

5 3
2
1
3
0
3

output

3 3 0 1 2
Επεξήγηση του 2ου παραδείγματος:

Για λόγους απλότητας, θα χαρακτηρίσουμε τις κάρτες ως αληθείς/ψευδείς, ανάλογα με τους ισχυρισμούς που είναι γραμμένοι σε αυτές.
Κάτω από το πέμπτο φύλλο υπάρχουν 0 ψεύτικα φύλλα, άρα είναι ψέματα.
Κάτω από το τέταρτο φύλλο υπάρχει 1 ψεύτικο φύλλο, άρα είναι αλήθεια.
Κάτω από το τρίτο φύλλο υπάρχει 1 ψεύτικο φύλλο, άρα είναι αλήθεια.
Κάτω από το δεύτερο φύλλο υπάρχει 1 ψεύτικο φύλλο, άρα είναι ψέματα.
Κάτω από το πρώτο φύλλο υπάρχουν 2 ψεύτικα φύλλα, άρα είναι ψέματα.
Επομένως, έχουμε συνολικά 3 ψεύτικα φύλλα


input

6 4
0
2
5
2
0
1

output

-1

Comments

There are no comments at the moment.