Candy
Στην αρχαία πόλη Ica, λέγεται ότι υπάρχει ένα παλάτι με πλούτο πέρα από κάθε φαντασία. Στο εσωτερικό του, υπάρχει ένας διάδρομος με κουτιά με ζαχαρωτά από όλο τον κόσμο. Οι ταξιδιώτες που περνούν από εκεί μπορούν να πάρουν όσες καραμέλες θέλουν, αρκεί να πληρώσουν το βάρος τους σε χρυσό.
Τα κουτιά με τα ζαχαρωτά αριθμούνται από έως από αριστερά προς τα δεξιά. Στο κουτί , υπάρχουν ζαχαρωτά, όπου είναι ένας μη αρνητικός ακέραιος αριθμός. Ως φύλακας του παλατιού θα θέλατε να μετακινήσετε τα κουτιά, έτσι ώστε τα κουτιά με τα περισσότερα ζαχαρωτά να καταλήξουν πιο κοντά στην είσοδο.
Σας δίνεται ο πίνακας , καθώς και οι αριθμοί και . Με μια κίνηση, σας επιτρέπεται να ανταλλάξετε γειτονικά στοιχεία του a. Ποιος είναι ο ελάχιστος αριθμός κινήσεων που απαιτείται, ώστε τα πρώτα στοιχεία του πίνακα να έχουν άθροισμα τουλάχιστον ;
Είσοδος
Η πρώτη γραμμή της εισόδου περιέχει τρεις ακέραιους αριθμούς , , και .
Η δεύτερη γραμμή της εισόδου περιέχει ακέραιους .
Έξοδος
Εάν είναι αδύνατο να επιτευχθεί ο στόχος πραγματοποιώντας κινήσεις, εκτυπώστε "NO". Διαφορετικά, εκτυπώστε έναν ακέραιο αριθμό, τον ελάχιστο αριθμό κινήσεων.
Περιορισμοί και βαθμολογία
- για
Σημείωση: Οι αριθμοί στην είσοδο μπορεί να μην χωράνε σε έναν ακέραιο -bit, οπότε προσέξτε τις υπερχειλίσεις αν χρησιμοποιείτε C++.
Η λύση σας θα δοκιμαστεί σε ένα σύνολο ομάδων δοκιμών (test groups), καθεμία από τις οποίες αξίζει έναν αριθμό βαθμών. Κάθε test group περιέχει ένα σύνολο δοκιμαστικών περιπτώσεων (test cases). Για να λάβετε τους πόντους για ένα test group, πρέπει να επιλύσετε όλα τα test cases στο test group.
Υποπρόβλημα | Βαθμοί | Περιορισμοί |
και για και | ||
για | ||
για | ||
Κανένας επιπλέον περιορισμός.td> |
Παραδείγματα
input
6 2 27
10 4 20 6 3 3
output
1
Επεξήγηση του 1ου παραδείγματος:
Στο παράδειγμα, τα δύο πρώτα στοιχεία πρέπει να έχουν άθροισμα τουλάχιστον . Αυτό μπορεί να επιτευχθεί με μια ανταλλαγή δύο γειτονικών στοιχείων: ανταλλάξτε τα και . Μετά από αυτή την ανταλλαγή, ο πίνακας γίνεται και πράγματι, τα δύο πρώτα στοιχεία έχουν άθροισμα .
input
6 5 5000000000
1000000000 1000000000 0 1000000000 1000000000 1000000000
output
3
Επεξήγηση του 2ου παραδείγματος:
Στο παράδειγμα, το πρέπει να μετακινηθεί μέχρι το τέλος του πίνακα. Αυτό απαιτεί τρεις ανταλλαγές.
input
3 2 100
20 30 60
output
NO
Επεξήγηση του 3ου παραδείγματος:
Στο παράδειγμα, είναι αδύνατο τα δύο πρώτα στοιχεία να έχουν άθροισμα τουλάχιστον . Το καλύτερο που μπορούμε να κάνουμε είναι .
input
1 1 100
100
output
0
Comments