关注
//与楼主两点不同: 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;
}
查看原帖
点赞 评论
相关推荐
查看4道真题和解析 点赞 评论 收藏
分享
12-03 11:12
门头沟学院 Java 点赞 评论 收藏
分享
大肥妖:我本科面华为的时候说了个狼性文化直接被挂了,朋友跟我说这是骂华为的词,他们叫奋斗者文化 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# offer帮选 #
4818113次浏览 29237人参与
# 0经验如何找实习? #
2309次浏览 67人参与
# 百融云创求职进展汇总 #
4386次浏览 54人参与
# 校招薪资来揭秘 #
355135次浏览 1932人参与
# 你找工作经历过哪些骗局? #
1083次浏览 32人参与
# OC/开奖 #
283227次浏览 1756人参与
# 产品每日一题 #
72312次浏览 641人参与
# 你开始找寒假实习了吗? #
2243次浏览 34人参与
# 实习,不懂就问 #
135403次浏览 1259人参与
# 如果公司降薪,你会跳槽吗? #
108393次浏览 671人参与
# Offer比较,你最看重什么? #
242160次浏览 1499人参与
# 职场新人体验 #
152795次浏览 1112人参与
# 跳槽时有那些注意事项 #
113278次浏览 581人参与
# 腾讯工作体验 #
536758次浏览 3613人参与
# 互联网公司爆料 #
155999次浏览 720人参与
# 2025年终总结 #
22755次浏览 308人参与
# 实习必须要去大厂吗? #
161617次浏览 1603人参与
# 秋招被确诊为…… #
273429次浏览 1570人参与
# 你会为了工作牺牲生活吗? #
64456次浏览 433人参与
# 实习中的菜狗时刻 #
449924次浏览 3517人参与
# 如果上班像打游戏,你最想解锁什么技能 #
16740次浏览 88人参与
