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 条评论) |