大魔法使小信

4. 大魔法使小信

题目ID:20467必做题文件操作100分

最新提交:

Wrong Answer

25 分

历史最高:

Wrong Answer

25 分

时间限制: 1000ms

空间限制: 262144kB

输入文件名: mahou.in

输出文件名: mahou.out

题目描述

​ 小信是大魔法使,他现在有nn个魔法球a1,a2,…,ana1​,a2​,…,an​,每个球都具有一定的魔力,他可以吸收这些魔法球来增强自己的魔力。但是魔法球的魔力非常不稳定,如果小信吸收的魔力值超过了pp,这些不稳定的魔力就会对他造成伤害。

​ 小信想要知道在他不受到伤害的前提下,最多能吸收多少魔力。

输入格式

​ 第一行输入两个正整数n(1≤n≤40)n(1≤n≤40)和p(1≤p≤109)p(1≤p≤109),分别表示魔法球的数量和小信收到伤害的临界魔力值。

​ 第二行输入nn个正整数a1,a2,…,an(1≤ai≤109)a1​,a2​,…,an​(1≤ai​≤109),表示魔法球的魔力值。

输出格式

输出一个整数,表示小信在不受伤害的前提下能吸收的最多的魔力值。

样例

Input 1

5 17 2 3 5 7 11

Output 1

17

Input 2

6 100 1 2 7 5 8 10

Output 2

33

Input 3

5 20 21 22 23 24 25

Output 3

0

样例解释

对于样例#1,小信的最好选择是:2+3+5+7=172+3+5+7=17,最多可以获得1717点魔力值。

数据范围

​ 对于10%10%的数据,有1≤n≤5,1≤p≤1000,1≤ai≤10001≤n≤5,1≤p≤1000,1≤ai​≤1000。

​ 对于30%30%的数据,有1≤n≤16,1≤p≤109,1≤ai≤1091≤n≤16,1≤p≤109,1≤ai​≤109。

​ 对于100%100%的数据,有1≤n≤40,1≤p≤109,1≤ai≤1091≤n≤40,1≤p≤109,1≤ai​≤109。

#include<bits/stdc++.h>
using namespace std;
int n,k,sum;
int a[10000005];
int main(){
//	freopen(mahou.in,"r",stdin);
//	freopen(mahou.out,"w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(sum+a[i]<=k)sum+=a[i];
	}
	cout<<sum;
	return 0;
}

那位大佬能告诉我为什么25分

这不是背包吗?

你的做法不对

这题能贪心?25??不是背包呀是10的9次

不开long long?

双向搜索

我看成了109,原题好像是P4799

[quote=“金杭东, post:7, topic:28330, username:金杭东”]
P4799
[/quote]P4799?什么

https://www.luogu.com.cn/problem/P4799