记录编号 581068 评测结果 AAAAAAAAAA
题目名称 [POJ 1456]超市 最终得分 100
用户昵称 Gravatar小金 是否通过 通过
代码语言 C++ 运行时间 1.547 s
提交时间 2023-07-28 16:45:32 内存使用 5.85 MiB
显示代码纯文本
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;
struct sp{
    int t;
    int w;
}a[10010];
priority_queue<int,vector<int>,greater<int>> q;
int n,t=0;
long long ans[35];
bool cmp(sp x,sp y)
{
    if(x.t!=y.t)
    {
        return x.t<y.t;
    }
    else
    {
        return x.w>y.w;
    }
}
void ch()
{
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        if(a[i].t==q.size()&&a[i].w>q.top())
        {
            q.pop();
            q.push(a[i].w);
        }
        else
        {
            if(a[i].t>q.size())
            {
                q.push(a[i].w);
            }
        }
    }
    while(q.size()!=0)
    {
        ans[t]+=q.top();
        q.pop();
    }
}
int main()
{
    freopen("supermarket.in","r",stdin);
    freopen("supermarket.out","w",stdout);
    memset(ans,0,sizeof(ans));
    while(cin>>n)
    {
        t++;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i].w>>a[i].t;
        }
        ch();
    }
    for(int i=1;i<=t;i++)
    {
        cout<<ans[i]<<endl;
    }
    return 0;
}