EGOI-23 (2023) - Γύρος #2 - 2 (Candy)

View as PDF

Submit solution

Points: 45 (partial)
Time limit: 3.0s
Memory limit: 977M

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

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

Τα κουτιά με τα ζαχαρωτά αριθμούνται από 0 έως N - 1 από αριστερά προς τα δεξιά. Στο κουτί i, υπάρχουν a ζαχαρωτά, όπου a είναι ένας μη αρνητικός ακέραιος αριθμός. Ως φύλακας του παλατιού θα θέλατε να μετακινήσετε τα κουτιά, έτσι ώστε τα κουτιά με τα περισσότερα ζαχαρωτά να καταλήξουν πιο κοντά στην είσοδο.

Σας δίνεται ο πίνακας a_0, a_1, \cdots, a_{N-1}, καθώς και οι αριθμοί F και T. Με μια κίνηση, σας επιτρέπεται να ανταλλάξετε γειτονικά στοιχεία του aa_0, a_1, \cdots, a_{N-1}. Ποιος είναι ο ελάχιστος αριθμός κινήσεων που απαιτείται, ώστε τα πρώτα F στοιχεία του πίνακα να έχουν άθροισμα τουλάχιστον T;

Είσοδος

Η πρώτη γραμμή της εισόδου περιέχει τρεις ακέραιους αριθμούς N, F, και T.

Η δεύτερη γραμμή της εισόδου περιέχει N ακέραιους a_0, a_1, \cdots, a_{N-1}.

Έξοδος

Εάν είναι αδύνατο να επιτευχθεί ο στόχος πραγματοποιώντας κινήσεις, εκτυπώστε "NO". Διαφορετικά, εκτυπώστε έναν ακέραιο αριθμό, τον ελάχιστο αριθμό κινήσεων.

Περιορισμοί και βαθμολογία
  • 1 \le N \le 100
  • 1 \le F \le N
  • 0 \le T \le 10^{11}
  • 0 \le a \le 10^9 για i = 0, 1, \cdots, N - 1

Σημείωση: Οι αριθμοί στην είσοδο μπορεί να μην χωράνε σε έναν ακέραιο 32-bit, οπότε προσέξτε τις υπερχειλίσεις αν χρησιμοποιείτε C++.

Η λύση σας θα δοκιμαστεί σε ένα σύνολο ομάδων δοκιμών (test groups), καθεμία από τις οποίες αξίζει έναν αριθμό βαθμών. Κάθε test group περιέχει ένα σύνολο δοκιμαστικών περιπτώσεων (test cases). Για να λάβετε τους πόντους για ένα test group, πρέπει να επιλύσετε όλα τα test cases στο test group.

 Υποπρόβλημα    Βαθμοί   Περιορισμοί
1 6 N \le 2 και a \le 100 για i = 0, 1, \cdots, N - 1 και T \le 10
2 19 a_i \le 1 για i = 0, 1, \cdots, N - 1
3 16 N \le 20
4 30 a_i \le 100 για i = 0, 1, \cdots, N - 1
5 29 Κανένας επιπλέον περιορισμός.td>
Παραδείγματα

input

6 2 27
10 4 20 6 3 3

output

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

Στο παράδειγμα, τα δύο πρώτα στοιχεία πρέπει να έχουν άθροισμα τουλάχιστον 27. Αυτό μπορεί να επιτευχθεί με μια ανταλλαγή δύο γειτονικών στοιχείων: ανταλλάξτε τα 4 και 20. Μετά από αυτή την ανταλλαγή, ο πίνακας γίνεται 10\,20\,4\,6\,3\,3 και πράγματι, τα δύο πρώτα στοιχεία έχουν άθροισμα 10 + 20 = 30 \ge 27.


input

6 5 5000000000
1000000000 1000000000 0 1000000000 1000000000 1000000000

output

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

Στο παράδειγμα, το 0 πρέπει να μετακινηθεί μέχρι το τέλος του πίνακα. Αυτό απαιτεί τρεις ανταλλαγές.


input

3 2 100
20 30 60

output

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

Στο παράδειγμα, είναι αδύνατο τα δύο πρώτα στοιχεία να έχουν άθροισμα τουλάχιστον 100. Το καλύτερο που μπορούμε να κάνουμε είναι 60 + 30 = 90.


input

1 1 100
100

output

0

Comments

There are no comments at the moment.