关注
//
// 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
;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
3486次浏览 82人参与
# 刚工作,应该先搞钱or搞成长? #
20892次浏览 165人参与
# 牛客AI体验站 #
15703次浏览 278人参与
# 你觉得第一学历对求职有影响吗? #
230068次浏览 1267人参与
# 如何提高实习转正率? #
85796次浏览 504人参与
# 找工作中的小确幸 #
80439次浏览 448人参与
# 实习在多还是在精 #
82824次浏览 509人参与
# 你觉得技术面多长时间合理? #
168160次浏览 1170人参与
# 牛友的春节生活 #
12265次浏览 229人参与
# 月薪多少能在一线城市生存 #
136492次浏览 898人参与
# 哪些公司对双非友好 #
207006次浏览 1163人参与
# 选了这个offer,你有没有后悔? #
738687次浏览 4472人参与
# 秋招踩过的“雷”,希望你别再踩 #
185733次浏览 1684人参与
# 备战春招/暑实,现在应该做什么? #
8111次浏览 205人参与
# 从夯到拉,锐评职场mentor #
7920次浏览 113人参与
# 实习到现在,你最困惑的一个问题 #
7137次浏览 169人参与
# 电网笔面经互助 #
59711次浏览 476人参与
# 找工作中的意难平 #
983688次浏览 6424人参与
# 制造业的秋招小结 #
143395次浏览 2089人参与
# 春招什么时候投? #
13403次浏览 211人参与