Distribute Repeating Integers LeetCode solution in C++
1class Solution {2public:3bool solve(vector<int> &q, map<int, int> &count, int idx) {4if (idx == q.size()) {5return true;6}7for (auto it = count.begin(); it != count.end(); it++) {8if (it->second >= q[idx]) {9count[it->first] -= q[idx];10if (solve(q, count, idx + 1)) return true;11count[it->first] += q[idx];12}13}14return false;15}16bool canDistribute(vector<int> &nums, vector<int> &quantity) {17map<int, int> count;18int n = nums.size();19for (int i = 0; i < n; i++) {20count[nums[i]]++;21}22sort(quantity.begin(), quantity.end(), greater<int>());23return solve(quantity, count, 0);24}25};