小明对自己的期末考试成绩非常满意,所以他决定出去旅游放松一下。他有很多想去的地方,每个地方对他都有一个吸引度,但是他预算有限,每一个地方都会给他带来一定的花销,所以他不一定能去所有他想去的地方。所以他想请你写个程序帮忙计算一下,他能去几个地方玩,这些地方带给他的吸引度之和是多少。
小明的旅游策略:小明不会去相同的地方两次及以上。在每次选择去哪里玩时,他会在他能去的地方中选择“性价比”(吸引度/花销)最高的地方。如果有多个地方性价比相同,他会选择去花销最小的地方。在每个地方游玩之后,小明会进行下一次的选择,直到他的预算不支持他去剩下任何一个地方。
第一行两个整数n,m,表示小明想去的地方有n个,他的预算是m。
第二行n个整数a[i],表示第i个地方给小明的吸引度为a[i]。
第三行n个整数b[i],表示第i个地方的花销是b[i]。
一行两个整数,用一个空格隔开。第一个整数表示小明按照这个旅游策略他能游玩几个地方,第二个整数表示这些地方带给他的吸引度之和是多少。
小明首先选择第5个地方,吸引度为5,花销为3,小明预算剩下7。
小明第二次选择第4个地方,吸引度为4,花销为4,小明预算剩下3。
小明第三次选择第2个地方,吸引度为2,花销为3,小明预算剩下0。
小明总共去了3个地方,吸引度之和为 5+4+2=11
对于30%的数据,满足 n <= 100,m
<= 5000, 1<=a[i],b[i] <= 100,
对于60% 的数据,满足 n <= 1000,m
<= 50000, 1<=a[i],b[i] <= 1000
对于80% 的数据,满足 n <= 3000,m
<= 100000, 1<=a[i],b[i] <= 10000
对于100% 的数据,满足 n <= 50000,
m <= 10000000, 1<=a[i],b[i] <= 50000