记录编号 580981 评测结果 AAAAAAAAAA
题目名称 [POJ 1456]超市 最终得分 100
用户昵称 Gravatar宇战 是否通过 通过
代码语言 C++ 运行时间 1.655 s
提交时间 2023-07-28 11:39:01 内存使用 17.18 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,s,f[1000000],top;
struct node{
    int y,x;
}a[1000000];
bool cmp(node x,node y){
    if(x.y==y.y){
        return x.x>y.x;
    }else{
        return x.y<y.y;
    }
}
priority_queue<int,vector<int>,greater<int>>h;
int main(){
    freopen("supermarket.in","r",stdin);
    freopen("supermarket.out","w",stdout);
      while(cin>>n){
          int ans=0;
          priority_queue<int,vector<int>,greater<int>>h;
          memset(a,0,sizeof(a));
          memset(f,0,sizeof(f));
          while(!h.empty()){
              h.pop();
          }          
          for(int i=1;i<=n;i++){
                  cin>>a[i].x>>a[i].y;
          }
          sort(a+1,a+1+n,cmp);
          for(int i=1;i<=n;i++){
              if(a[i].y>h.size()){
                  h.push(a[i].x);
              }else if(a[i].y==h.size()){
                  if(a[i].x>h.top()){
                      h.pop();
                      h.push(a[i].x);
                  } 
              }
          }
          while(!h.empty()){
              ans+=h.top();
              h.pop();
          }
          cout<<ans<<endl;
      }
}