abubaca

Untitled

Dec 27th, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <map>
  5.  
  6. using namespace std;
  7.  
  8. bool pred(const pair< char, double > &a, const pair< char, double > &b)
  9. {
  10.     return a.second > b.second;
  11. }
  12.  
  13. int main()
  14. {
  15.     map <int, char> order;
  16.     map <char, double> count;
  17.     int m, n;
  18.     cin >> n >> m;
  19.     char temp1;
  20.     double temp2;
  21.     for (int i = 0; i < n; i++)
  22.     {
  23.         cin >> temp1 >> temp2;
  24.         order[i] = temp1;
  25.         count[temp1] = temp2;
  26.     }
  27.     map <char, int> avrg;
  28.     map <char, int> ::iterator curr, past;
  29.     for (int i = 0; i < m; i++)
  30.     {
  31.         cin >> temp1;
  32.         curr = avrg.find(temp1);
  33.         past = avrg.end();
  34.         if (curr == past)
  35.             avrg[temp1] = 1;
  36.         else
  37.             curr -> second += 1;
  38.     }
  39.     vector< pair < char, double > > source(count.begin(), count.end());
  40.     vector< pair < char, int > > dest(avrg.begin(), avrg.end());
  41.     sort(source.begin(), source.end(), pred);
  42.     sort(dest.begin(), dest.end(), pred);
  43.     map <char, char> loc;
  44.     for (int i = 0; i < source.size(); i++)
  45.     {
  46.         loc[source[i].first] = dest[i].first;
  47.     }
  48.     for (map <int, char> ::iterator itr = order.begin(); itr != order.end(); itr++)
  49.     {
  50.         cout << loc.find(itr->second)->second << endl;
  51.     }
  52.     //system("pause");
  53. }
Advertisement
Add Comment
Please, Sign In to add comment