Διανομή γλυκών (candies)
Η θεία Khong ετοιμάζει κουτιά με γλυκά για τους μαθητές ενός σχολείου. Τα κουτιά είναι αριθμημένα από
έως
-
και αρχικά είναι άδεια. Το
-οστό κουτί (
-
) χωράει
[
] γλυκά.
Η θεία Khong αφιερώνει ημέρες για την προετοιμασία των κουτιών. Την
-οστή ημέρα (
), εκτελεί μια ενέργεια που καθορίζεται από τρείς ακέραιους
[
],
[
] και
[
], όπου
και
[
]
. Για κάθε κουτί
για το οποίο ισχύει
:
Αν
, η θεία Khong προσθέτει γλυκά στο κουτί
, ένα-ένα, μέχρι να έχει προσθέσει ακριβώς
γλυκά ή να γεμίσει το κουτί. Δηλαδη, αν το κουτί είχε προηγουμένως
γλυκά, μετά την ενέργεια αυτή θα έχει min
γλυκά.
Αν
, η θεία αφαιρεί γλυκά από το κουτί
, ένα-ένα, μέχρι να έχει αφαιρέσει ακριβώς -
γλυκά ή να αδειάσει το κουτί. Δηλαδή, αν το κουτί είχε προηγουμένως
γλυκά, μετά την ενέργεια αυτή θα έχει max(
) γλυκά.
Βρείτε το πλήθος των γλυκών σε κάθε κουτί μετά από τις ημέρες.
Λεπτομέρειες υλοποίησης
Πρέπει να υλοποιήσετε την παρακάτω συνάρτηση:
int[] distribute_candies(int[] c, int[] l, int[] r, int[] v)
: ένας πίνακας μήκους
. Για
, το
παριστάνει τη χωρητικότητα σε γλυκά του κουτιού
.
,
και
: τρείς πίνακες μήκους
. Την
-οστή ημέρα, για
, η θεία Khong εκτελεί μια ενέργεια που καθορίζεται από τους ακέραιους
,
και
, όπως περιγράφεται παραπάνω.
- Η συνάρτηση αυτή θα πρέπει να επιστρέφει έναν πίνακα μήκους
. Ας ονομάσουμε αυτόν τον πίνακα
. Για
, η τιμή του
θα πρέπει να είναι το πλήθος των γλυκών στο κουτί
μετά από τις
ημέρες.
Παραδείγματα
Παράδειγμα 1
Έστω η ακόλουθη κλήση:
distribute_candies([10, 15, 13], [0, 0], [2, 1], [20, -11])
Αυτό σημαίνει ότι το κουτί χωράει
γλυκά, το κουτί
χωράει
γλυκά, και το κουτί
χωράει
γλυκά.
Στο τέλος της ημέρας , το κουτί
έχει min(
) =
γλυκά, το κουτί
έχει min(
) =
γλυκά και το κουτί
έχει min(
) =
γλυκά.
Στο τέλος της ημέρας , το κουτί
έχει max(
) =
γλυκά, το κουτί
έχει max(
) =
γλυκά. Εφόσον
, δεν υπάρχει αλλαγή στο πλήθος των γλυκών του κουτιού
. Το πλήθος των γλυκών σε κάθε κουτί στο τέλος κάθε ημέρας δίνεται παρακάτω:
Ημέρα | Κουτί 0 | Κουτί 1 | Κουτί 2 |
0 | 10 | 15 | 13 |
1 | 0 | 4 | 13 |
Οπότε, η συνάρτηση θα πρέπει να επιστρέψει [].
Περιορισμοί
(για κάθε
)
(για κάθε
)
,
(για κάθε
)
Υποπροβλήματα
- (
βαθμοί)
- (
βαθμοί)
(για κάθε
)
- (
βαθμοί)
= ... =
- (
βαθμοί)
και
(για κάθε
)
- (
βαθμοί) Χωρίς επιπλέον περιορισμούς.
Υποδειγματικός βαθμολογητής
Ο υποδειγματικός βαθμολογητής διαβάζει την είσοδο ως εξής:
- γραμμή
:
- γραμμή
:
...
- γραμμή
:
- γραμμή
):
Ο υποδειγματικός βαθμολογητής τυπώνει τις απαντήσεις ως εξής:
- γραμμή
:
...
Comments