long weight(const std::vector<Item>& item_list, const std::vector<int>& item_switch)
{
return std::inner_product(item_list.begin(), item_list.end(),
item_switch.begin(), item_switch.end(),
0L, std::plus{}, [](const Item& item, int switch_) {
return item.weight * switch_;
};
}
long profit(const std::vector<Item>& item_list, const std::vector<int>& item_switch)
{
return std::inner_product(item_list.begin(), item_list.end(),
item_switch.begin(), item_switch.end(),
0L, std::plus{}, [](const Item& item, int switchswitch_) {
return item.weightprofit * profit;switch_;
};
}
long weight(const std::vector<Item>& item_list, const std::vector<int>& item_switch)
{
return ranges::inner_product(item_list, item_switch, 0L, {}, {}, {}, &Item::weight, {});
}
long profit(const std::vector<Item>& item_list, const std::vector<int>& item_switch)
{
return ranges::inner_product(item_list, item_switch, 0L, {}, {}, {}, &Item::profit, {});
}