Common lisp NP完全开胃菜
我正在尝试使用CommonLisp以暴力的方式解决这个问题。用于教育和娱乐目的 这是密码Common lisp NP完全开胃菜,common-lisp,knapsack-problem,Common Lisp,Knapsack Problem,我正在尝试使用CommonLisp以暴力的方式解决这个问题。用于教育和娱乐目的 这是密码 (defparameter +items+ '((:mixed-fruit 215) (:french-fries 275) (:side-salad 335) (:hot-wings 355) (:mozzarella-sticks 420) (:sampler-plate 580))) (defun appetizers (limit items) (l
(defparameter +items+
'((:mixed-fruit 215)
(:french-fries 275)
(:side-salad 335)
(:hot-wings 355)
(:mozzarella-sticks 420)
(:sampler-plate 580)))
(defun appetizers (limit items)
(let ((res (make-hash-table :test 'equal)))
(labels ((rec (total acc)
(if (= total limit)
(setf (gethash (sort acc #'string<= :key #'symbol-name) res) total)
(loop for (name val) in items for
new-total = (+ total val)
when (>= limit new-total)
do (rec new-total (cons name acc))))))
(rec 0 nil)
(alexandria:hash-table-alist res))))
它声称它们每个都是价值1505英镑的开胃菜,但实际上不是:
CL-USER> (defun cost-of (chosen-items items)
(loop for i in chosen-items
sum (second (assoc i items))))
COST-OF
CL-USER> (loop for (lst . quote-total-endquote)
in (appetizers 1505 +items+)
collect (cost-of lst +items+))
(2075 1505 3320 3535 1375 2095 2805 1160 3525 3235 2170)
CL-USER>
如果我试着一步一步地打印出来
(defun appetizers (limit items)
(let ((res (make-hash-table :test 'equal)))
(labels ((rec (total acc)
(format t "Recurring with ~s ~s~%" total acc)
(if (= total limit)
(progn
(format t "Done: ~s ~s (~s)~%" total acc (cost-of acc items))
(setf
(gethash (sort acc #'string<= :key #'symbol-name) res)
total))
(loop for (name price) in items
for new-total = (+ total price)
when (>= limit new-total)
do (rec new-total (cons name acc))))))
(rec 0 nil)
(alexandria:hash-table-alist res))))
所有标有错误
的行似乎都有单个:混合水果
定价为1075
,这实际上是5x:混合水果
的价格
我已经盯着这个看了很久了,我很确定我自己找不到这个虫子。我在这里哪里出错了?功能是破坏性的;允许对列表进行破坏性修改。当您以增量方式构建和存储列表时,这会导致奇怪的结果。首先,让我们看一个简单的例子。下面是我使用SBCL得到的结果,但是实现可以做不同的事情
(loop
for n from 0 below 5
for l = (list n) then (list* n l)
collecting (sort l '<))
;=> ((0 1 2 3 4) (0 1 2 3 4) (1 2 3 4) (2 3 4) (3 4))
要查看acc发生了什么样的修改,您可以将一些调试输出添加到循环。例如:
(defun appetizers (limit items)
(let ((res (make-hash-table :test 'equal)))
(labels ((rec (total acc)
(if (= total limit)
(setf (gethash (sort acc #'string<= :key #'symbol-name) res) total)
(loop for (name val) in items for
new-total = (+ total val)
with acc2 = (copy-list acc)
when (>= limit new-total)
do (rec new-total (cons name acc))
(when (not (equal acc2 acc))
(format t "~&changed from ~a to ~a" acc acc2))))))
(rec 0 nil)
(hash-table-alist res))))
. 我应该记得这一点,但我最近一直在使用具有函数式排序的语言。感谢您的提醒。实际上,您只使用sort的返回值(而不是像(sort acc)(setf(gethash acc)…)
)做得很好。问题是其他地方仍然使用它。它比许多“sort is destrophic”bug更微妙。
(loop
for n from 0 below 5
for l = (list n) then (list* n l)
collecting (sort l '<))
;=> ((0 1 2 3 4) (0 1 2 3 4) (1 2 3 4) (2 3 4) (3 4))
(loop
for n from 0 below 5
for l = (list n) then (list* n l)
collecting (sort (copy-list l) '<))
;=> ((0) (0 1) (0 1 2) (0 1 2 3) (0 1 2 3 4))
(setf (gethash (sort acc #'string<= :key #'symbol-name) res) total)
(defun appetizers (limit items)
(let ((res (make-hash-table :test 'equal)))
(labels ((rec (total acc)
(if (= total limit)
(setf (gethash (sort (copy-list acc) #'string<= :key #'symbol-name) res) total)
;;^^^^^^^^^^^^^
(loop for (name val) in items for
new-total = (+ total val)
when (>= limit new-total)
do (rec new-total (cons name acc))))))
(rec 0 nil)
(hash-table-alist res))))
CL-USER> (appetizers 1505 +items+)
(((:HOT-WINGS :HOT-WINGS :MIXED-FRUIT :SAMPLER-PLATE) . 1505)
((:MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT) . 1505))
(defun appetizers (limit items)
(let ((res (make-hash-table :test 'equal)))
(labels ((rec (total acc)
(if (= total limit)
(setf (gethash (sort acc #'string<= :key #'symbol-name) res) total)
(loop for (name val) in items for
new-total = (+ total val)
with acc2 = (copy-list acc)
when (>= limit new-total)
do (rec new-total (cons name acc))
(when (not (equal acc2 acc))
(format t "~&changed from ~a to ~a" acc acc2))))))
(rec 0 nil)
(hash-table-alist res))))
CL-USER> (appetizers 1505 +items+)
changed from (MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT) to (MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT) to (MIXED-FRUIT)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
HOT-WINGS
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE) to (HOT-WINGS MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE) to (HOT-WINGS MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT)
changed from (MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
MIXED-FRUIT
SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE)
changed from (MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT)
changed from (HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
MIXED-FRUIT
HOT-WINGS)
changed from (MIXED-FRUIT SAMPLER-PLATE) to (MIXED-FRUIT HOT-WINGS)
changed from (MIXED-FRUIT SAMPLER-PLATE) to (MIXED-FRUIT HOT-WINGS)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE MIXED-FRUIT SAMPLER-PLATE)
changed from (MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT
HOT-WINGS)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT
HOT-WINGS
HOT-WINGS
HOT-WINGS
MIXED-FRUIT
SAMPLER-PLATE
SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS HOT-WINGS
HOT-WINGS MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS HOT-WINGS
HOT-WINGS MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS HOT-WINGS
HOT-WINGS MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS HOT-WINGS
HOT-WINGS MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS HOT-WINGS
HOT-WINGS MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS MIXED-FRUIT
MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS
HOT-WINGS
HOT-WINGS
MIXED-FRUIT
SAMPLER-PLATE
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (MIXED-FRUIT SAMPLER-PLATE
HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (SAMPLER-PLATE) to (SAMPLER-PLATE HOT-WINGS HOT-WINGS
MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT MIXED-FRUIT
MIXED-FRUIT SAMPLER-PLATE SAMPLER-PLATE SAMPLER-PLATE
SAMPLER-PLATE SAMPLER-PLATE) to (HOT-WINGS)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
MIXED-FRUIT
SAMPLER-PLATE)
changed from (MIXED-FRUIT SAMPLER-PLATE) to (MIXED-FRUIT HOT-WINGS
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
changed from (HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
HOT-WINGS
HOT-WINGS
MIXED-FRUIT
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
changed from (HOT-WINGS HOT-WINGS MIXED-FRUIT MIXED-FRUIT SAMPLER-PLATE) to (HOT-WINGS
SAMPLER-PLATE)
(((:HOT-WINGS :HOT-WINGS :HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :MIXED-FRUIT :SAMPLER-PLATE) . 1505)
((:HOT-WINGS :MIXED-FRUIT :SAMPLER-PLATE) . 1505)
((:HOT-WINGS :HOT-WINGS :HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT
:MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE
:SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT
:MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE
:SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :SAMPLER-PLATE
:SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT
:SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT
:MIXED-FRUIT :MIXED-FRUIT :MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE
:SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :HOT-WINGS :MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE
:SAMPLER-PLATE)
. 1505)
((:HOT-WINGS :HOT-WINGS :MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE
:SAMPLER-PLATE)
. 1505)
((:MIXED-FRUIT :SAMPLER-PLATE :SAMPLER-PLATE :SAMPLER-PLATE) . 1505))