Advertisement
JosepRivaille

P45965: Zeros i uns (2)

May 17th, 2016
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void write_vector(const vector<int> &v)
  6. {
  7.     if (v.size() != 0) {
  8.         cout << v[0];
  9.         for (int i = 1; i < v.size(); ++i)
  10.             cout << " " << v[i];
  11.     }
  12.     cout << endl;
  13. }
  14.  
  15. void find_combinations(vector<int> &v, int i, int my_ones, int &max_ones, int my_zeros, int &max_zeros)
  16. {
  17.     if (i == v.size()) {
  18.         write_vector(v);
  19.     }
  20.     else {
  21.         v[i] = 0;
  22.         if (my_zeros < max_zeros) find_combinations(v, i+1, my_ones, max_ones, my_zeros+1, max_zeros);
  23.         v[i] = 1;
  24.         if (my_ones < max_ones) find_combinations(v, i+1, my_ones+1, max_ones, my_zeros, max_zeros);
  25.     }
  26. }
  27.  
  28.  
  29. int main()
  30. {
  31.     int n, max_ones, max_zeros;
  32.     cin >> n >> max_ones;
  33.     max_zeros = n - max_ones;
  34.     vector<int> v(n);
  35.     find_combinations(v, 0, 0, max_ones, 0, max_zeros);
  36. }
  37.  
  38. //JosepRivaille
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement