#include <bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
#define N 100003
#define pi 3.1415926535
typedef pair<int,pair<int,int>> piii;
typedef pair<ll,int> pii;
int an,n;
int a[105]; 
bool bo[105];
int sum[105];
set<vector<int>> ann;
void dfs(int pos)
{
	if(sum[pos]<an||an<0) return;
	if(an==0)
	{
		int f=1;
		vector<int> x;
		for(int i=0;i<n;i++)
		{
			if(!bo[i]) x.push_back({a[i]});
		}
		ann.insert(x);
		return;
	}
	dfs(pos+1);
	an-=a[pos];
	bo[pos]=1;
	dfs(pos+1);
	an+=a[pos];
	bo[pos]=0;
}
void solve()
{
cin>>an;cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);for(int i=n-1;i>=0;i--) sum[i]=sum[i+1]+a[i]; 
dfs(0);
for(auto i:ann)
{
	for(auto j:i)
	{
		cout<<j<<" ";
	}
	cout<<endl;
}
} 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
   	solve();
    return 0;
    
}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐