Advertisement
What_Ever

Untitled

Feb 5th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdio>
  4. #include <algorithm>
  5. using namespace std;
  6. #define all(c) (c).begin(),(c).end()
  7. int n,m;
  8. vector<string> inp,current,res;
  9. int k[10];
  10. char swaps(char s)
  11. {
  12.     return s == '1' ? '0' : '1';
  13. }
  14. void solve(int i,int bits)
  15. {
  16.     if(bits == k[i])
  17.     {
  18.         current.push_back(inp[i]);
  19.         return;
  20.     }
  21.     for(int j = 0 ; j < n ; j++)
  22.     {
  23.         inp[i][j] = swaps(inp[i][j]);
  24.         solve(i,bits+1);
  25.         inp[i][j] = swaps(inp[i][j]);
  26.     }
  27. }
  28. int main()
  29. {
  30.     string temp;
  31.     cin >> n >> m;
  32.     for(int i = 0 ; i < m ; i++)
  33.     {
  34.         cin >> temp;
  35.         inp.push_back(temp);
  36.         cin >> k[i];
  37.     }
  38.     solve(0,0);
  39.     res = current;
  40.     sort(all(res));
  41.     for(int i = 1 ; i < m ; i++)
  42.     {
  43.         solve(i,0);
  44.         sort(all(current));
  45.         set_intersection(all(res),all(current),res.begin());
  46.     }
  47.     for(int i = 0 ; i < m ; i++)
  48.     {
  49.         res.erase(find(all(res),inp[i]));
  50.     }
  51.     cout << res.size();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement