DuongNhi99

SAMPLE (Olympic 2021)

Apr 8th, 2021
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. #ifdef LOCAL
  6.     freopen("in.txt", "r", stdin);
  7. #else
  8.     freopen("SAMPLE.inp", "r", stdin);
  9.     freopen("SAMPLE.out", "w", stdout);
  10. #endif // LOCAL
  11.     ios_base::sync_with_stdio(false);
  12.     cin.tie(NULL);
  13.  
  14.     int n, m, k; cin >> n >> m >> k;
  15.     map<int, int> cnt;
  16.     while (n--) {
  17.         string s; cin >> s;
  18.         ++cnt[bitset<20>(s).to_ulong()];
  19. /*
  20.         int bs = 0;
  21.         for (int i = 0; i < m; ++i)
  22.             bs |= ((s[i] - '0') << i); // (s[i] - '0') dich di i bit
  23.         ++cnt[bs];
  24. */
  25.     }
  26.  
  27.     int64_t ans = 0;
  28.     for (int mask1 = 0; mask1 <= (1 << m); ++mask1) {
  29.         for (int mask2 = 0; mask2 <= (1 << m); ++mask2) {
  30.             if (__builtin_popcountll(mask1 ^ mask2) == k) //Dem so bit bat cua (mask1 xor mask2 (giong 0, khac 1))
  31.                 ans += cnt[mask1] * cnt[mask2];
  32.         }
  33.     }
  34.  
  35.     cout << ans / 2 << '\n';
  36.  
  37.     return 0;
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment