Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <map>
- using namespace std;
- bool pred(const pair< char, double > &a, const pair< char, double > &b)
- {
- return a.second > b.second;
- }
- int main()
- {
- vector<char> order;
- vector< pair < char, double > > source;
- int m, n;
- cin >> n >> m;
- char temp1;
- double temp2;
- for (int i = 0; i < n; i++)
- {
- cin >> temp1 >> temp2;
- order.push_back(temp1);
- source.push_back(make_pair(temp1,temp2));
- }
- sort(source.begin(), source.end(), pred);
- map <char, int> avrg;
- map <char, int> ::iterator curr, past;
- for (int i = 0; i < m; i++)
- {
- cin >> temp1;
- curr = avrg.find(temp1);
- past = avrg.end();
- if (curr == past)
- avrg[temp1] = 1;
- else
- curr -> second += 1;
- }
- vector< pair < char, int > > dest(avrg.begin(), avrg.end());
- sort(dest.begin(), dest.end(), pred);
- map <char, char> loc;
- for (int i = 0; i < n; i++)
- {
- loc[source[i].first] = dest[i].first;
- }
- for (int i = 0; i < n; i++)
- {
- cout << loc.find(order[i])->second << endl;
- }
- //system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment