关注
//
// 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
;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
14411次浏览 225人参与
# 实习,不懂就问 #
159176次浏览 1411人参与
# 晒晒你司的新年福利 #
1043次浏览 24人参与
# 国企秋招,你投了吗? #
58855次浏览 376人参与
# 程序员能干到多少岁? #
911次浏览 25人参与
# 硬件/芯片公司工作体验 #
146816次浏览 960人参与
# 软开人,秋招你打算投哪些公司呢 #
178318次浏览 1353人参与
# 硬件人秋招进展 #
269410次浏览 3983人参与
# 毕业后不工作的日子里我在做什么 #
232894次浏览 1691人参与
# 帆软软件工作体验 #
11361次浏览 55人参与
# 暑假倒计时,你都干了些啥? #
39389次浏览 204人参与
# 运营人求职交流聚集地 #
208584次浏览 1091人参与
# 你觉得实习能学到东西吗 #
134870次浏览 1453人参与
# 第一份工作应该只看薪资吗 #
233894次浏览 1855人参与
# 电信求职进展汇总 #
39774次浏览 197人参与
# 关于春招你都做了哪些准备? #
125852次浏览 717人参与
# 快手工作体验 #
301815次浏览 2904人参与
# AI求职实录 #
19685次浏览 467人参与
# 今年春招是金一银二嘛? #
33505次浏览 315人参与
# 没关系,至少我的__很曼妙 #
14593次浏览 258人参与