Advertisement
amine99

Untitled

Mar 3rd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define loop(i,b,e) for(int i=b;i<=e;i++)
  4. #define loop2(i,e,b) for(int i=e;i>=b;i--)
  5. typedef long long ll;
  6. typedef unsigned long long ull;
  7.  
  8. int n,m;
  9. int t[15];
  10. map<string,int> mp;
  11. string s;
  12.  
  13. void solve(int i,int sum,string ch,int took){
  14.     if(sum>n)
  15.         return;
  16.     if(sum==n && took>=2){
  17.         if(!mp[ch])
  18.             cout<<ch << "="<< n <<endl;
  19.         mp[ch]++;
  20.         return;
  21.     }
  22.     if(i==m)
  23.         return;
  24.       s = to_string(t[i]);
  25.     solve(i+1,sum+t[i],(ch=="") ? ch+s : ch + '+' +s,took+1);
  26.     solve(i+1,sum,ch,took);
  27. }
  28.  
  29. int main(){
  30.     scanf("%d%d",&n,&m);
  31.     loop(i,0,m-1)
  32.         scanf("%d",&t[i]);
  33.     sort(t,t+m);
  34.     solve(0,0,"",0);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement