家鸡系列
测试数据来自 IkeLiu/1006
题目背景:
很久很久以前,在一个古老又遥远的地方,生活着很多只野鸡。
有一天,世界上第一个人类诞生了,他的名字叫jacky_hu。
又过了几天,jacky_hu
的伙伴: SuperIke_Liu
博士和 fire_dragon
专家诞生了。
他们意识到把野鸡抓过来,就可以将野鸡变成家鸡。
于是,他们这三位青少年早荔枝,荔大枝,荔长枝,将个人的荔枝同家鸡联系在一起(doge
题目描述:
#include<cstdio>
int main(){
printf("Hello, World!");
return 0;
}
在跟世界打过招呼以后,他们出发了,开始抓野鸡做家鸡。
山外青山楼外楼,唱跳rap打篮球。中分头,背带裤,我是ikun你记住。
清明时节雨坤坤,路上行人梳中分。借问坤家何处有,牧童遥指蔡徐坤。
终于,他们找到了野鸡。
他们开始抓野鸡。
不料,野鸡很难抓,每只鸡都要花很多时间来抓。
他们三个人活在世上的时间有限,但他们要抓尽可能多的野鸡,整出家鸡系列。
他们找来了宇宙之神你,请你帮助。
现在有 n 只野鸡,每只野鸡都有自己的价值 \(a[i]\) ,但每只野鸡也都要花费一定的时间(\(t[i]\) 年)来抓。
他们三个人还有 m 年的寿命,请算出他们在死之前能抓到的野鸡最大价值是多少,以及他们能抓哪几只野鸡。
注意:他们在死的那一刻抓住的野鸡也算抓住。
数据样例:
输入:
第一行一个整数 \(n\) ;
第二行一个整数 \(m\) ;
接下来 \(n\) 行,每行两个数整数,分别表示 \(t[i]\) 和 \(a[i]\) 。
输出:
第一行:能抓到野鸡的最大价值
第二行:能抓到的野鸡,每只野鸡之间用空格隔开
输入样例:
5 1
1 114514
2 31
3 1919810
1 10
0 6
输出样例:
114520
1 5
提示:
\(n<=20,p<2 ^ {64},a[i]<2 ^ {64},t[i]<2 ^ {64}\)
请用double数据类型进行存储(如果你愿意,long double也行)。