Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int a[16];
- bool vis[16];
- vector<int> vr,lvr;
- int n, t,sum=0;
- void solve(int x){
- if(sum==t){
- if(vr==lvr)return;
- if(!lvr.empty())cout<<endl;
- for(int i=0;i<vr.size();i++){
- cout<<vr[i];if(i!=vr.size()-1) cout<<'+';}
- lvr=vr;
- }
- if(x==n)return ;
- for(int i=x;i<n;i++){
- vr.push_back(a[i]);
- sum+=a[i];
- vis[i]=1;
- solve(i+1);
- sum-=a[i];
- vis[i]=0;
- vr.pop_back();
- }
- }
- int main()
- {
- #ifdef ONLINE_JUDGE
- freopen( "input.txt" , "r" , stdin);
- freopen( "output.txt" , "w" , stdout);
- #endif
- int g=0;
- while (1){
- memset( vis,0,sizeof vis);
- lvr.clear();
- cin>>t>>n;
- if(n==0)return 0;
- // if(g)cout<<endl;
- g=1;
- for(int i=0;i<n;++i){
- cin>>a[i];
- }
- cout<<"Sums of "<<t<<":"<<endl;
- solve(0);
- if(lvr.empty())cout<<"NONE";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement