#2600. 开心的金明

开心的金明

题目描述

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过 NN 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的 NN 元。于是,他把每件物品规定了一个重要度,分为 55 等:用整数 151 \sim 5 表示,第 55 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过 NN 元(可以等于 NN 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。

设第 jj 件物品的价格为 v[j]v[j],重要度为 w[j]w[j],共选中了 kk 件物品,编号依次为 j1,j2,,jkj_1, j_2, \dots, j_k,则所求的总和为:

$$v[j_1] \times w[j_1] + v[j_2] \times w[j_2] + \dots + v[j_k] \times w[j_k]$$

请你帮助金明设计一个满足要求的购物单。

输入格式

第一行:两个正整数 NNmm,用一个空格隔开; (其中 N<30000N < 30000 表示总钱数,m<25m < 25 为希望购买物品的个数。)

接下来 mm 行:每行两个非负整数 vvww; (其中 vv 表示该物品的价格(v10000v \le 10000),ww 表示该物品的重要度(1p51 \le p \le 5)。)

输出格式

仅一行,一个正整数,表示不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000< 100000000)。

输入输出样例

输入 #1

1000 5
800 2
400 5
300 5
400 3
200 2

输出 #1

3900

样例解释

对于样例输入,5件物品的价格与“价格×重要度”价值如下:

  1. 物品1:价格800,价值 800×2=1600800 \times 2 = 1600
  2. 物品2:价格400,价值 400×5=2000400 \times 5 = 2000
  3. 物品3:价格300,价值 300×5=1500300 \times 5 = 1500
  4. 物品4:价格400,价值 400×3=1200400 \times 3 = 1200
  5. 物品5:价格200,价值 200×2=400200 \times 2 = 400

在总预算1000元的限制下,最优选择是物品2、物品3和物品5

  • 总花费:400+300+200=900400 + 300 + 200 = 900(不超过1000)
  • 总价值:2000+1500+400=39002000 + 1500 + 400 = 3900

这是所有可能组合中价值最大的方案,因此输出3900。

说明/提示

数据范围:

  • N<30000N < 30000
  • m<25m < 25
  • v10000v \le 10000
  • 1p51 \le p \le 5