关注
//
// main.cpp
// DiDitest001
//
// Created by Rouen on 16/9/6.
// Copyright © 2016
年
Rouen. All rights reserved.
//
#include
<iostream>
#include
<vector>
#include
<queue>
#include
<stack>
#include
<map>
#include
<algorithm>
using
namespace
std
;
class
comppair{
public
:
int
operator
()(
pair
<
int
,
int
> a,
pair
<
int
,
int
> b) {
if
(a.
second
!= b.
second
)
return
a.
second
> b.
second
;
else
return
a.
first
> b.
first
;
}
};
long
long
helper(
int
n,
int
m,
multiset
<
int
>& arr,
vector
<
pair
<
int
,
int
>> &cost) {
long
long
res =
0
;
int
resid = m;
sort
(cost.
begin
(),cost.
end
(),
comppair
());
for
(
int
k =
0
;k <=m;++k) {
auto
ii = arr.
lower_bound
(cost[
k
].
first
);
if
(ii != arr.
end
()) {
res += cost[
k
].
second
;
arr.
erase
(ii);
--resid;
}
if
(resid ==
0
)
break
;
}
return
res;
}
int
main(
int
argc,
const
char
* argv[]) {
// insert code here...
//std::cout << "Hello, World!\n";
int
n,m;
multiset
<
int
> arr;
vector
<
pair
<
int
,
int
>> cost;
int
tmp1, tmp2,tmp3;
while
(
cin
>> n >> m) {
arr.
clear
();
cost.
resize
(m);
for
(
int
i =
0
;i < n;++i) {
scanf
(
"%d"
,&tmp3);
arr.
insert
(tmp3);
}
for
(
int
i =
0
;i < m;++i) {
scanf
(
"%d"
,&tmp1);
scanf
(
"%d"
,&tmp2);
//scanf("%d %d",&tmp1,&tmp2);
cost[
i
] = {tmp1,tmp2};
}
printf
(
"%lld\n"
,
helper
(n, m, arr, cost));
}
return
0
;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
236491次浏览 1933人参与
# 学历or实习经历,哪个更重要 #
40092次浏览 292人参与
# 北方华创开奖 #
22107次浏览 251人参与
# 地方国企笔面经互助 #
2394次浏览 6人参与
# 应届生被毁约被毁意向了怎么办 #
25867次浏览 235人参与
# 选完offer后,你后悔学本专业吗 #
8548次浏览 55人参与
# 机械应届生薪资要多少才合适? #
12199次浏览 59人参与
# 你最想要的公司福利是? #
38201次浏览 78人参与
# 查收我的offer竞争力报告 #
15332次浏览 209人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2602次浏览 32人参与
# 没有实习经历,还有机会进大厂吗 #
804083次浏览 13794人参与
# 你觉得第一学历对求职有影响吗? #
14742次浏览 121人参与
# 我的工作日记 #
20877次浏览 269人参与
# 寒假躺平还是提前实习 #
57730次浏览 424人参与
# 秋招被确诊为…… #
52215次浏览 292人参与
# 总结:哪家公司面试体验感最差 #
24945次浏览 121人参与
# 公司情报交流地 #
31406次浏览 222人参与
# 不给转正的实习,你还去吗 #
1515050次浏览 16957人参与
# 00后45度躺现状 #
38215次浏览 311人参与
# 机械人,签完三方你在忙什么? #
23614次浏览 123人参与
# 实习,投递多份简历没人回复怎么办 #
2386441次浏览 34244人参与