Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α10.21 · Φορτωμένο Έλκηθρο

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #3 (Frozen Themed), Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 10, 12

Πρόγραμμα: sled.c (25 μονάδες)

O Kristoff θέλει να πάρει τρία αντικείμενα μαζί του και να ελέγξει αν γεμίζουν πλήρως (από πλευράς βάρους) το έλκηθρό του. Γράψτε ένα πρόγραμμα που δέχεται ως πρώτο όρισμα την χωρητικότητα του ελκήθρου και στην συνέχεια το βάρος του κάθε αντικειμένου που θα μπορούσε να πάρει. Περιορισμοί: (1) τα βάρη είναι όλα ακέραιοι, (2) πρέπει να πάρει αναγκαστικά 3 αντικείμενα, (3) το κάθε αντικείμενο έχει μοναδικό βάρος και (4) τα βάρη πρέπει να γεμίζουν πλήρως το έλκηθρο. Παράδειγμα εκτέλεσης ακολουθεί:

$ ./sled 42 18 1 4 81 47 35 22 41 2 3 17
You can take 3 objects: 18 + 22 + 2 = 42
You can take 3 objects: 4 + 35 + 3 = 42
You can take 3 objects: 22 + 3 + 17 = 42
$ ./sled 42 18 1 4 81 47 35 41 2 17
No 3 objects found to fill up your sled.

Υπόδειξη

Μετατρέψτε τα ορίσματα σε πίνακα ακεραίων (με έλεγχο ότι είναι έγκυροι ακέραιοι και ότι δεν επαναλαμβάνονται) και δοκιμάστε κάθε τριάδα δεικτών i < j < k, ώστε κάθε συνδυασμός να τυπωθεί μία φορά. Η σειρά εξόδου του παραδείγματος προκύπτει ακριβώς από αυτή τη σειρά απαρίθμησης. Αν θέλετε κάτι ταχύτερο από O(n³), σκεφτείτε ταξινόμηση και δύο δείκτες, αλλά τότε αλλάζει η σειρά εξόδου.

Αριθμός στον οδηγό: Α10.21 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex3-q2 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex3-q2.html · Markdown (GitHub)