1 条题解

  • 2
    #include <bits/stdc++.h>
    using namespace std;
    int n,m,cnt,tot;
    string ans[1005];
    struct it
    {
        string s;
        int p;
        int v;
    }a[1005];
    bool cmp1(it a,it b)
    {
        return a.v<b.v||a.v==b.v&&a.p<b.p||a.v==b.v&&a.p==b.p&&a.s[0]<a.s[0];
    }
    bool cmp2(string a,string b)
    {
        return a[0]<b[0];
    }
    int main()
    {
        cin>>m>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i].s>>a[i].p>>a[i].v;
        }
        sort(a+1,a+1+n,cmp1);
        for(int i=1;i<=n;i++)
        {
            cnt+=a[i].p;
            if(cnt>m)
            {
                cnt-=a[i].p;
                continue;
            }
            ans[++tot]=a[i].s;
        }
        sort(ans+1,ans+1+tot,cmp2);
        for(int i=1;i<=tot;i++)
        {
            cout<<ans[i]<<endl;
        }
        return 0;
    }
    //专坑双胞胎
    
  • 1

信息

ID
3014
难度
7
分类
(无)
标签
递交数
30
已通过
6
通过率
20%
上传者