abubaca

Untitled

Jan 3rd, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 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.   vector<char> order;
  16.   vector< pair < char, double > > source;
  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.push_back(temp1);
  25.     source.push_back(make_pair(temp1,temp2));
  26.   }
  27.   sort(source.begin(), source.end(), pred);
  28.   map <char, int> avrg;
  29.   map <char, int> ::iterator curr, past;
  30.   for (int i = 0; i < m; i++)
  31.   {
  32.     cin >> temp1;
  33.     curr = avrg.find(temp1);
  34.     past = avrg.end();
  35.     if (curr == past)
  36.       avrg[temp1] = 1;
  37.     else
  38.       curr -> second += 1;
  39.   }
  40.   vector< pair < char, int > > dest(avrg.begin(), avrg.end());
  41.   sort(dest.begin(), dest.end(), pred);
  42.   map <char, char> loc;
  43.   for (int i = 0; i < n; i++)
  44.   {
  45.     loc[source[i].first] = dest[i].first;
  46.   }
  47.   for (int i = 0; i < n; i++)
  48.   {
  49.     cout << loc.find(order[i])->second << endl;
  50.   }
  51.   //system("pause");
  52. }
Advertisement
Add Comment
Please, Sign In to add comment