比赛 贪心题目练习 评测结果 WWWWWWWWWW
题目名称 超市 最终得分 0
用户昵称 TeaWine 运行时间 4.113 s
代码语言 C++ 内存使用 3.49 MiB
提交时间 2025-03-22 17:10:46
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;

struct th{
    int v,d;
};

int n,mp[10086];

th a[10086];

bool cmp (th a,th b){
    if(a.v!=b.v)return a.v>b.v;
    return a.d<b.d;
}

int main() {
    
    freopen("supermarket.in","r",stdin);
    freopen ("supermarket.out","w",stdout);
    
    while(cin>>n){
        int num=0,mx=-1;
        int yt=0;
        for(int i = 1; i<=n; i++){
            cin>>a[i].v>>a[i].d;
            mx=max(mx,a[i].d+1);
        }
        for(int i = 1; i<=n; i++)mp[i]=0;
        sort(a+1,a+1+n,cmp);
        
        for(int i = 1; i<=n; i++){
            if(!mp[a[i].d]){
                num+=a[i].v;
                mp[a[i].d]=1;
            }
            else{
                for(int j = a[i].d; j>0; j--)if(!mp[j]){num+=a[i].v; mp[j]=1;}
            }
        }
        cout<<num;
    }
    
    return 0;
}