Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <map>
  2. #include <vector>
  3. #include <iostream>
  4.  
  5. using std::multimap;
  6. using std::vector;
  7.  
  8. typedef multimap<int, int>::iterator mapiter;
  9.  
  10. int solution(vector<int> &T) {
  11.     multimap<int, int> map;
  12.     vector<int> keys;
  13.     mapiter iter;
  14.  
  15.     for (size_t i = 0; i < T.size(); i++)
  16.     {
  17.         if ((iter = map.find(T[i])) == map.end()) {
  18.             map.insert(std::make_pair(T[i], 1));
  19.             keys.push_back(T[i]);
  20.         }
  21.         else
  22.             (iter->second)++;
  23.     }
  24.  
  25.  
  26.     for (size_t j = 0; j < T.size() / 2; j++)
  27.     {
  28.         mapiter max = map.find(keys[0]);
  29.         for (size_t i = 1; i < keys.size(); i++)
  30.         {
  31.             iter = map.find(keys[i]);
  32.             if (iter->second > max->second)
  33.                 max = iter;
  34.         }
  35.         iter = map.find(max->first);
  36.         iter->second--;
  37.     }
  38.  
  39.     int result = 0;
  40.  
  41.     for (size_t i = 0; i < keys.size(); i++)
  42.     {
  43.         iter = map.find(keys[i]);
  44.         if (iter->second > 0)
  45.             result++;
  46.     }
  47.  
  48.     return result;
  49. }
  50.  
  51. int main()
  52. {
  53.     vector<int> a = { 3, 4, 6, 6, 7, 7 };
  54.     std::cout << solution(a) << std::endl;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement