关注
//与楼主两点不同: 1.multimap改为multiset
//2.存储就餐人数、消费额时用vector,v[0]是消费额,v[1]是消费人数
//之所以消费额放前面就是为了排序时以消费额为准,这样不再需要自定义结构体和比较函数
//昨晚没想起来用multiset,更没想起来用其成员函数lower_bound,只是从头到尾搜索,也没用long long,结果50%
#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
int main()
{
int n , m, x, y;
cin >> n >> m;
multiset<int> table;
for(int i = 0; i < n; ++i)
{
cin >> x;
table.insert(x);
}
vector<vector<int> > guest;
for(int i = 0; i < m; ++i)
{
cin >> x >> y;
guest.push_back({y, x}); //x:人数 y:消费额,y放vector的前面,排序时以消费额为准
}
sort(guest.begin(),guest.end(), greater<vector<int> >());
long long maxValue = 0;
for(int i = 0; i < m && !table.empty(); ++i)
{
auto it = table.lower_bound(guest[i][1]); //guest[i][1]就餐人数
if(it != table.end())
{
maxValue += guest[i][0]; //guest[i][0]消费额
table.erase(it);
}
}
cout << maxValue <<endl;
return 0;
}
查看原帖
点赞 评论
相关推荐
10-16 15:02
重庆大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# OC/开奖 #
206924次浏览 1372人参与
# 找实习是选平台还是选业务? #
1173次浏览 16人参与
# 腾讯音乐秋招 #
432532次浏览 4790人参与
# 秋招疯了,看什么都像offer #
18254次浏览 130人参与
# 记录实习开销 #
165510次浏览 639人参与
# 你面试时吹过最大的牛 #
4748次浏览 27人参与
# 百度秋招 #
53456次浏览 391人参与
# 科大讯飞工作体验 #
29624次浏览 72人参与
# 材料转码还有必要吗? #
32554次浏览 153人参与
# 应届生第一份工作最好去大厂吗? #
84170次浏览 878人参与
# 华为工作体验 #
243675次浏览 1301人参与
# 设计人的面试记录 #
167484次浏览 1546人参与
# 实习学到最有价值的工作习惯 #
41840次浏览 366人参与
# 办公室恋情是职场大忌吗 #
10715次浏览 21人参与
# 你知道哪些职场黑话? #
65303次浏览 454人参与
# 电信求职进展汇总 #
29146次浏览 158人参与
# 实习生应该准时下班吗 #
318045次浏览 1718人参与
# 招银网络科技工作体验 #
25958次浏览 95人参与
# 研究所VS国企,该如何选 #
226448次浏览 1944人参与
# 蚂蚁求职进展汇总 #
133918次浏览 1214人参与
# 移动求职进展汇总 #
14168次浏览 119人参与
# CVTE求职进展汇总 #
26910次浏览 327人参与
查看5道真题和解析