Advertisement
DimaT1

612mccme_2

Sep 2nd, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. bool check(vector<int> &a, long long mask, long long m) {
  7.     int sum = a[0];
  8.     int b;
  9.     for(int i = 1; i < a.size(); i++) {
  10.         if(mask & (1 << i-1))
  11.             b = 1;
  12.         else
  13.             b = -1;
  14.         sum+= a[i] * b;
  15.     }
  16.  
  17.     return sum == m;
  18. }
  19.  
  20. void print(vector<int> &a, long long mask, long long m) {
  21.     cout << a[0];
  22.     for(int i = 1; i < a.size(); i++) {
  23.         if(mask & (1 << i-1))
  24.             cout << "+";
  25.         else
  26.             cout << "-";
  27.         cout << a[i];
  28.     }
  29.     cout << "=" << m << endl;
  30. }
  31.  
  32. int main()
  33. {
  34.     long long m;
  35.     int n;
  36.     cin >> n >> m;
  37.  
  38.     vector<int> a(n);
  39.     for(int i = 0; i < n; i++)
  40.         cin >> a[i];
  41.  
  42.     bool flag = false;
  43.     long long mask = 0;
  44.     for(mask = 0; (mask < (1 << (n-1))) && !flag; mask++) {
  45.         flag = check(a, mask, m);
  46.     }
  47.  
  48.     mask--;
  49.  
  50.     if(!flag)
  51.         cout << "No solution" << endl;
  52.     else
  53.         print(a, mask, m);
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement