8573. 最大化搬运宝物

【问题描述】

有一天,阿里巴巴赶着一头毛驴上山砍柴。砍好柴准备下山时,远处突然出现一股烟尘,弥漫着直向上空飞扬,朝他这儿卷过来,而且越来越近。靠近后,他才看清原来是一支马队,他们共有四十人,一个个年轻力壮、行动敏捷。一个首领模样的人背负沉重的鞍袋,从丛林中一直来到那个大石头跟前,喃喃地说道:“芝麻,开门吧!”随着那个头目的喊声,大石头前突然出现一道宽阔的门路,于是强盗们鱼贯而入。阿里巴巴待在树上观察他们,直到他们走得无影无踪之后,才从树上下来。他大声喊道:“芝麻,开门吧!”他的喊声刚落,洞门立刻打开了。他小心翼翼地走了进去,一下子惊呆了,洞中堆满了财物,还有多得无法计数的金银珠宝,有的散堆在地上,有的盛在皮袋中。突然看见这么多的金银财富,阿里巴巴深信这肯定是一个强盗们数代经营、掠夺所积累起来的宝窟。为了让乡亲们开开眼界,见识一下这些宝物,他想一种宝物只拿一个,如果太重就用锤子凿开,但毛驴的运载能力有限的,怎么才能用驴子运走最大价值的财宝分给穷人呢?请你编写程序帮助阿里巴巴解决问题,假设山洞中有n种宝物,每种宝物有一定的重量w和相应的价值v,毛驴的运载能力有限,只能运载m重量的宝物,一种宝物只能拿一样,宝物可以分割。假设载重量m,古董的数量为n。

限制条件:

     w为整数且0<w<100,v为整数且0<v<100


【输入形式】

     输入三行数据,第一行包含两个整数,第一个整数是毛驴的载重量m,第二个整数是古董的个数n,第二行是n个古董的重量,使用空格分开,第三行是n个古董的价值,使用空格分开。


【输出形式】

     输出一个整数,即能带走古董的最大价值。


【样例输入】

 30 10

 4 2 9 5 5 8 5 4 5 5

      3 8 18 6 8 20 5 6 7 15


【样例输出】

      70.5

难度等级: 3
总通过次数: 45
总提交次数: 431