Выбор комбинации минимальной стоимости

У меня есть данные разных предметов в разных ресторанах

    Rest    Item     Price
    ----------------------
    ABC     dosa      14
    ABC     idly      30
    ABC     idly+upma 25

    123     dosa      30
    123     idly      7
    123     upma      12

    XYZ     dosa      20
    XYZ     idly      12
    XYZ     upma      20
    XYZ     dosa+upma 30
    XYZ     dosa+idly+upma 40

Now I need to pickup a restaurant which gives me the best deal of "dosa+idly+upma" items.

Из приведенного примера: это будет ресторан "Азбука"

Я не могу разработать эффективный способ сделать это или не понимаю, как это сделать? Любая идея?

Обновить

Вот как выглядят мои объекты

Class Rest{
  Map<String,Integer> menu; //item,price map
}

Ответы на вопрос(5)

Ваш ответ на вопрос