
3 3 10 3 5 3 1 3 1 6 3 2 1 3 7 1 3 4 2 6 1 4 7 2 6 4 5 3 4
0 3 5
1 #include <queue>
2 #include <cstdio>
3 #include <algorithm>
4 using namespace std;
5
6 struct deliver
7 {
8 int ld, fs;
9 } num[2020];
10
11 bool cmp(deliver ld,deliver fs)
12 {
13 if(ld.ld == fs.ld)
14 return ld.fs < fs.fs;
15 else
16 return ld.ld < fs.ld;
17 }
18
19 int main()
20 {
21 int i, n;
22 while(~scanf("%d", &n))
23 {
24 priority_queue <int, vector<int>, greater<int> > q;
25 for(i=0; i<n; i++)
26 scanf("%d %d", &num[i].ld, &num[i].fs);
27 sort(num, num+n, cmp);
28 int sum = 0;
29 for(i=0; i<n; i++)
30 {
31 if(q.size() < num[i].ld) q.push(num[i].fs);
32 else
33 {
34 p() < num[i].fs)
35 {
36 sum += q.top();
37 q.pop();
38 q.push(num[i].fs);
39 }
40 else
41 sum += num[i].fs;
42 }
43 }
44 printf("%dn", sum);
45 }
46 return 0;
47 }
转载于:.html
本文发布于:2024-01-30 16:01:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170660169721184.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |