Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <set>
- #include <map>
- #include <iterator>
- using namespace std;
- int main()
- {
- int n;
- cin >> n;
- int m;
- cin >> m;
- vector<int> list;
- for(int i = 0; i < n; i ++) {
- int a;
- cin >> a;
- list.push_back(a);
- }
- sort(list.begin(), list.end());
- map<string, int> fruits;
- for(int i = 0; i < m; i ++) {
- string s;
- cin >> s;
- auto fruitIter = fruits.find(s);
- if(fruitIter != fruits.end()) {
- //cout << "Found " << fruitIter->first << " " << fruitIter->second << endl;
- fruitIter->second = fruitIter->second + 1;
- }
- else {
- //cout << "Not found" << endl;
- fruits[s] = 1;
- }
- }
- vector<int> countFruits;
- for(auto itMap = fruits.begin(); itMap != fruits.end(); itMap++)
- {
- //cout << itMap->second << endl;
- countFruits.push_back(itMap->second);
- }
- sort(countFruits.begin(), countFruits.end());
- int minSum = 0, maxSum = 0;
- m = countFruits.size();
- for(int i = 0; i < m; i ++) {
- minSum += list.at(i) * countFruits.at(m - 1 -i);
- }
- cout << minSum << " " << maxSum;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement