T105118 背包(knapsack)

题目描述

有一个背包和$n$个物品,要把某些物品彼此压着放在背包里 。 背包最大承重为$S$。已知第$i$个物品放上去的时间 ,拿走的时间$in$ ,拿走时间$out$,重量$w$ ,承重$s$ , 价值$v$ 。 对于同一时刻,有多个物品进出的话,顺序任意。 如果将一个物品放入背包,必须满足以下要求 : - 在 $in$ 时间进,放在最上面。 - $out$ 时间出,出的时候他在最上面并且得到价值$v$。 - 当他在背包内时,他上方的物品的重量必须时刻小于等于$s$ 。 它也可以不放入背包 ,则得不到价值。 问你可以得到的最大价值。

输入格式

第一行包括两个整数$n,S$ 接下来的$n$行,每行五个整数分别表示第$i$个物品放上去的时间$in$,拿走的时间$out$ ,重量$w$ ,承重$s$ ,价值$v$ 。

输出格式

包括一个整数, 表示最大价值。

说明/提示

对于$20\%$的数据,$n \le 10$。 对于额外$20\%$的数据,保证所有$in$相同。 对于$100\%$的数据,$n \le 500,S \le 1000,0 \le in \lt out \lt 2n,w \le 1000,s \le 1000,v \le 10^6$。 保证任意两个物品$i,j$之间不会放入时间和拿走时间都相同