COCI-11 (2011) - Γύρος #6 - 1 (Jack)

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 32M

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

Στο "Blackjack", ένα δημοφιλές παιχνίδι τράπουλας, ο στόχος είναι να υπάρχουν κάρτες που αθροίζονται στον μεγαλύτερο αριθμό που δεν υπερβαίνει το 21. Ο Mirko δημιούργησε τη δική του εκδοχή αυτού του παιχνιδιού.

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

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει έναν ακέραιο αριθμό N\;(3 \leq N \leq 100), τον αριθμό των καρτών και M\;(10 \leq M \leq 300\,000), τον αριθμό που δεν πρέπει να υπερβούμε.

Η ακόλουθη γραμμή περιέχει αριθμούς γραμμένους στις κάρτες του Mirko: N διακριτοί θετικοί ακέραιοι χωρισμένοι σε διάστημα μικρότεροι από 100\,000.

Θα υπάρχουν πάντα κάποια τρία φύλλα των οποίων το άθροισμα δεν είναι μεγαλύτερο από το M.

Έξοδος

Η πρώτη και μοναδική γραμμή εξόδου θα πρέπει να περιέχει το μεγαλύτερο δυνατό άθροισμα που μπορούμε να λάβουμε.

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

input

5 21
5 6 7 8 9

output

21

input

10 500
93 181 245 214 315 36 185 138 216 295

output

497

Comments

There are no comments at the moment.