leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1947.cpp (877B)


0 class Solution { 1 public: 2 int maxCompatibilitySum(vector<vector<int>> &students, vector<vector<int>> &mentors) { 3 const int n = students.size(), m = students[0].size(); 4 uint16_t student[9] = {0}, mentor[9] = {0}; 5 6 for (uint8_t i = 0; i < n; i++) { 7 for (const int n : students[i]) 8 student[i] = (student[i] | n) << 1; 9 for (const int n : mentors[i]) 10 mentor[i] = (mentor[i] | n) << 1; 11 } 12 13 uint8_t res = 0; 14 vector<uint8_t> idx(n); 15 iota(begin(idx), end(idx), 0); 16 do { 17 uint8_t count = 0; 18 for (uint8_t i = 0; i < n; i++) { 19 count += m - __builtin_popcount(student[i] ^ mentor[idx[i]]); 20 } 21 res = max(res, count); 22 } while (next_permutation(begin(idx), end(idx))); 23 24 return res; 25 } 26 };