3290. [GESP202309 六级] 小杨买饮料
时间限制:1000 MS 内存限制:128 MB
题目描述
⼩杨来到了⼀家商店,打算购买⼀些饮料。这家商店总共出售 $ N $ 种饮料,编号从 $ 0 $ ⾄ $ N-1 $ ,其中编号为 $ i $ 的饮料售价 $ c_i $ 元,容量 $ l_i $ 毫升。 ⼩杨的需求有如下⼏点: $1$.⼩杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买 $ 1 $ 瓶; $2$.⼩杨很渴,所以他想要购买总容量**不低于 $ L $ **的饮料; $3$.⼩杨勤俭节约,所以在 $ 1 $ 和 $ 2 $ 的前提下,他希望使用尽可能少的费用。 ⽅便起见,你只需要输出**最少花费的费用**即可。特别地,如果不能满⾜⼩杨的要求,则输出 `no solution` . --- **输入格式** 第⼀⾏两个整数 $ N $ , $ L $ 。 接下来 $ N $ ⾏,依次描述第 $ i= 0,1,...,N-1 $ 种饮料:每⾏两个整数 $ c_i $ , $ l_i $ --- **输出格式** 输出⼀⾏⼀个整数,表⽰最少需要花费多少钱,才能满足⼩杨的要求。 特别地,如果不能满足要求,则输出 `no solution` 。 --- **样例输入$1$** ``` 5 100 100 2000 2 50 4 40 5 30 3 20 ``` **样例输出$1$** ``` 9 ``` **样例输入$2$** ``` 5 141 100 2000 2 50 4 40 5 30 3 20 ``` **样例输出$2$** ``` 100 ``` ** 样例输入$3$** ``` 4 141 2 50 4 40 5 30 3 20 ``` **样例输出$3$** ``` no solution ``` --- **数据规模** 对于 $ 40 $% 的测试点,保证 $ N ≤20;1≤L ≤100; l_i ≤100$ 对于 $ 70 $% 的测试点,保证 $ l_i ≤100$ 对于 $ 100 $% 的测试点,保证 $1≤ N ≤500;1≤ L ≤2000;1≤ c_i , l_i ≤10^6$。 **样例解释 $1$** 小杨可以购买 $ 1,2,4 $ 号饮料,总计获得 $ 50+40+20=110 $ 毫升饮料,花费 $ 2+4+3=3 $ 元。 如果只考虑前两项需求,小杨也可以购买 $ 1,3,4 $ 号饮料,它们的容量总和为 $ 50+30+20=100 $ 毫升,恰好可以满足需求。但遗憾的是,这个方案需要花费 $ 2+5+3=10 $ 元。 **样例解释 $2$ ** $ 1,2,3,4 $ 号饮料总计 $ 140 $ 毫升,如每种饮料至多购买 $ 1 $ 瓶,则恰好无法满足需求,因此只能花费 $ 100 $ 元购买 $ 0 $ 号饮料。