jd第一题,小红抢红包,这么做为什么不行求大神

#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
int cmp(const pair<string, int>& x, const pair<string, int>& y)
{
	return x.second > y.second;
}
void sortValue(map<string, int>& tMap, vector<pair<string, int> >& tVector)
{
	for (map<string, int>::iterator curr = tMap.begin(); curr != tMap.end(); curr++)
		tVector.push_back(make_pair(curr->first, curr->second));

	sort(tVector.begin(), tVector.end(), cmp);
}

int main() {
	while (true) {
		int tag_num = 0;
		int m_num = 0;
		int tmp = 0;
		int max = 0;
		int min = 0;
		string tmp_str;
		vector<int> price;
		vector<pair<string, int> > tmp_vec;
		map<string,int> thing;
	
		cin >> tag_num >> m_num;
		for (int i = 0; i < tag_num; i++) {
			cin >> tmp;
			price.push_back(tmp);
		}
		for (int i = 0; i < m_num; i++) {
			cin >> tmp_str;
			++thing[tmp_str];
		}
		sortValue(thing, tmp_vec);
		sort(price.begin(), price.end());
		for (int i = 0; i < tmp_vec.size(); i++) {
			min = min + price[i] * tmp_vec[i].second;
			max = max + price[tag_num - 1 - i] * tmp_vec[i].second;
		}
		cout << min << ' ' << max << endl;
	}
	return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务