关注
//
// 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
;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
01-03 14:09
成都信息工程大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
14258次浏览 207人参与
# 实习,不懂就问 #
159034次浏览 1406人参与
# 晒晒你司的新年福利 #
845次浏览 21人参与
# 国企秋招,你投了吗? #
58790次浏览 376人参与
# 程序员能干到多少岁? #
790次浏览 23人参与
# 硬件/芯片公司工作体验 #
146811次浏览 960人参与
# 软开人,秋招你打算投哪些公司呢 #
178277次浏览 1352人参与
# 硬件人秋招进展 #
269393次浏览 3983人参与
# 毕业后不工作的日子里我在做什么 #
232879次浏览 1691人参与
# 帆软软件工作体验 #
11330次浏览 55人参与
# 运营人求职交流聚集地 #
208571次浏览 1091人参与
# 你觉得实习能学到东西吗 #
134852次浏览 1453人参与
# 第一份工作应该只看薪资吗 #
233885次浏览 1855人参与
# 电信求职进展汇总 #
39769次浏览 197人参与
# 关于春招你都做了哪些准备? #
125847次浏览 717人参与
# 快手工作体验 #
301802次浏览 2904人参与
# AI求职实录 #
19575次浏览 443人参与
# 今年春招是金一银二嘛? #
33335次浏览 313人参与
# 没关系,至少我的__很曼妙 #
14491次浏览 245人参与
# 实习打杂,要跑路吗 #
58329次浏览 340人参与