WA求调
查看原帖
WA求调
1094797
Myl100313楼主2025/7/29 16:28

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n;
long long ans=0;
long long m;
long long a[114514];
void getsum(vector<long long>& sum,int s,int e,int cur)
{
	if(s>e)
	{
		sum.push_back(cur);
		return ;
	}
	getsum(sum,s+1,e,cur);
	getsum(sum,s+1,e,cur+a[s]);
}
int main()
{
	//ios::sync_with_stdio(0);
	//cin.tie(nullptr);
	cin>>n>>m;
	for(int i=0;i<n;i++)
	  cin>>a[i];
	int mid=n>>1;
	vector<long long> ls,rs;
	getsum(ls,0,mid-1,0);
	getsum(rs,mid,n-1,0);
	sort(ls.begin(),ls.end());
	for(int i=0;i<rs.size();++i)
	{
		long long sum=rs[i];
		if(sum>m) continue;
		long long re=m-sum;
		int it=upper_bound(ls.begin(),ls.end(),re)-ls.begin();
		ans+=it;
	}
	cout<<ans<<endl;
	return 0;
}

2025/7/29 16:28
加载中...