Μπισκότα (biscuits)
Η θεία Khong οργανώνει ένα πάρτυ με συμμετέχοντες, και θέλει να δώσει στον καθένα ένα πακέτο με μπισκότα. Υπάρχουν
διαφορετικοί τύποι μπισκότων, αριθμημένοι από
μέχρι και
. Κάθε μπισκότο τύπου
(
) έχει γευστική αξία ίση με
. Η θεία Khong έχει
(πιθανόν και μηδέν) μπισκότα τύπου
στη διάθεσή της.
Κάθε πακέτο της θείας Khong θα περιέχει μηδέν ή περισσότερα μπισκότα κάθε τύπου. Ο συνολικός αριθμός των μπισκότων τύπου σε όλα τα πακέτα δεν πρέπει να υπερβαίνει το
. Το άθροισμα
των γευστικών αξιών όλων των μπισκότων ενός πακέτου ονομάζεται συνολική γευστικότητα του πακέτου.
Βοηθήστε τη θεία Khong να βρει το πλήθος των διαφορετικών τιμών , τέτοιων ώστε να είναι δυνατόν να φτιαχθούν
πακέτα, που καθένα να έχει συνολική γευστικότητα ίση με
.
Λεπτομέρειες υλοποίησης
Πρέπει να υλοποιήσετε την παρακάτω συνάρτηση:
int64 count_tastiness(int64 x, int64[] a)
: το πλήθος των πακέτων μπισκότων που θα φτιαχθούν.
: ένας πίνακας μήκους
. Για
, το
είναι το πλήθος των μπισκότων τύπου
που έχει στη διάθεσή της η θεία.
- Η συνάρτηση πρέπει να επιστρέφει το πλήθος των διαφορετικών τιμών
, έτσι ώστε η θεία να μπορεί να φτιάξει
πακέτα μπισκότων, που καθένα να έχει συνολική γευστικότητα
.
- Η συνάρτηση καλείται συνολικά
φορές (βλ. τις παραγράφους Περιορισμοί και Υποπροβλήματα για τις επιτρεπόμενες τιμές του
). Κάθε μια από αυτές τις κλήσεις θα πρέπει να αντιμετωπίζεται σαν ένα διαφορετικό σενάριο.
Παραδείγματα
Παράδειγμα 1
Έστω η παρακάτω κλήση:
count_tastiness(3, [5, 2, 1])
Αυτό σημαίνει ότι η θεία θέλει να συσκευάσει πακέτα, και υπάρχουν
τύποι μπισκότων στη διάθεσή της:
μπισκότα τύπου
, με τιμή γευστικότητας
το καθένα,
μπισκότα τύπου
, με τιμή γευστικότητας
το καθένα,
μπισκότο τύπου
, με τιμή γευστικότητας
.
Οι δυνατές τιμές του είναι
. Για παράδειγμα για να φτιάξει
πακέτα συνολικής γευστικότητας
το καθένα, η θεία μπορεί να συσκευάσει:
- ένα πακέτο που να περιέχει τρία μπισκότα τύπου
, και
- δύο πακέτα που καθένα να περιέχει ένα μπισκότο τύπου
και ένα μπισκότο τύπου
.
Εφόσον υπάρχουν δυνατές τιμές του
, η συνάρτηση πρέπει να επιστρέψει
5
.
Παράδειγμα 2
Έστω η παρακάτω κλήση:
count_tastiness(2, [2, 1, 2])
Αυτό σημαίνει ότι η θεία θέλει να συσκευάσει πακέτα, και υπάρχουν
τύποι μπισκότων στη διάθεσή της:
μπισκότα τύπου
, με τιμή γευστικότητας
το καθένα,
μπισκότο τύπου
, με τιμή γευστικότητας
,
μπισκότα τύπου
, με τιμή γευστικότητας
το καθένα.
Οι δυνατές τιμές του είναι
. Εφόσον υπάρχουν
δυνατές τιμές του
, η συνάρτηση πρέπει να επιστρέψει
.
Περιορισμοί
(για κάθε
)
- Για κάθε κλήση της count_tastiness, το άθροισμα των τιμών γευστικότητας όλων των
μπισκότων που είναι στη διάθεση της θείας δεν ξεπερνάει το
.
Υποπροβλήματα
- (
βαθμοί)
, και για κάθε κλήση της count_tastiness, το άθροισμα των τιμών γευστικότητας όλων των μπισκότων που είναι στη διάθεση της θείας δεν ξεπερνάει το
.
- (
βαθμοί)
,
- (
βαθμοί)
,
- (
βαθμοί) Η σωστή τιμή που επιστρέφεται σε κάθε κλήση της count_tastiness δεν ξεπερνά το
.
- (
βαθμοί) Χωρίς επιπλέον περιορισμούς.
Υποδειγματικός βαθμολογητής
Ο υποδειγματικός βαθμολογητής διαβάζει την είσοδο ως εξής: Η πρώτη γραμμή περιέχει έναν
ακέραιο . Μετά από αυτό, ακολουθούν
ζεύγη γραμμών, και κάθε ζεύγος περιγράφει ένα σενάριο με την εξής μορφή:
- γραμμή
:
- γραμμή
:
Η έξοδος του υποδειγματικού βαθμολογητή είναι ως εξής:
- γραμμή
(
): η τιμή επιστροφής της count_tastiness για το
-οστό σενάριο της εισόδου.
Comments