一家超市出售一套产品。在截止日期dx之前,它为每种产品x∈Prod赚取利润px,
该截止日期是从开始销售的那一刻起以时间单位的整数表示的。每种产品的销售时间正好是一个单位。销售进度表是产品Sell≤Prod的有序子集,
这样,根据Sell的顺序,每个产品x∈Sell的销售在截止日期dx之前或dx到期时完成。销售计划的利润为Profit(Sell)=Σx∈Sellpx。
最佳销售计划是利润最高的计划。例如,考虑产品Prod = {a,b,c,d},其中(pa,da)=(50,2),(pb,db)=(10,1),(pc,dc)=(20 ,2)和(pd,dd)=(30,1)。
表1中列出了可能的销售时间表。
例如,时间表Sell = {d,a}显示产品d的销售在时间0开始并在时间1结束,而产品a的销售在时间1开始并在时间1开始。在时间2结束。这些产品在截止日期之前已售出。 卖出是最佳计划,其利润为80。
编写一个程序,该程序从输入文本文件中读取产品集,并为每组产品计算最佳销售计划的利润。