Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <map>
- #include <vector>
- #include <iostream>
- using std::multimap;
- using std::vector;
- typedef multimap<int, int>::iterator mapiter;
- int solution(vector<int> &T) {
- multimap<int, int> map;
- vector<int> keys;
- mapiter iter;
- for (size_t i = 0; i < T.size(); i++)
- {
- if ((iter = map.find(T[i])) == map.end()) {
- map.insert(std::make_pair(T[i], 1));
- keys.push_back(T[i]);
- }
- else
- (iter->second)++;
- }
- for (size_t j = 0; j < T.size() / 2; j++)
- {
- mapiter max = map.find(keys[0]);
- for (size_t i = 1; i < keys.size(); i++)
- {
- iter = map.find(keys[i]);
- if (iter->second > max->second)
- max = iter;
- }
- iter = map.find(max->first);
- iter->second--;
- }
- int result = 0;
- for (size_t i = 0; i < keys.size(); i++)
- {
- iter = map.find(keys[i]);
- if (iter->second > 0)
- result++;
- }
- return result;
- }
- int main()
- {
- vector<int> a = { 3, 4, 6, 6, 7, 7 };
- std::cout << solution(a) << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement