2 条题解

  • 1
    @ 2026-8-21 18:06:06
    #include<bits/stdc++.h>
    using namespace std;
    struct shop{
        string s;
        int p;
        int v;
    };
    shop a[5005];
    int cmp(shop a,shop b){
    	if (a.v!=b.v) return a.v<b.v;
        if (a.p!=b.p) return a.p<b.p;
        return a.s<b.s;
    }
    int main(){
        int n,m;
        cin>>m>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i].s>>a[i].p>>a[i].v;
        }
        sort(a,a+n+1,cmp);
        string s[1005];
        int j=0;
        for(int i=1;i<=n;i++){
            if(a[i].p<=m){
            	s[++j]=a[i].s;
            	m-=a[i].p;
    		}
        }
        sort(s,s+j+1);
        for(int i=1;i<=j;i++){
        	cout<<s[i]<<endl; 
    	}
    	return 0;
    }
    //包AC!!!
    
    • 0
      @ 2026-8-27 11:01:18
      # include <bits/stdc++.h>
      
      using namespace std;
      const int N=1e3+5;
      struct node{
      	int v,p;string s;
      	bool operator<(const node&a)const{
      		if(v!=a.v)return a.v>v;
      		if(p!=a.p)return a.p>p;
      		return a.s>s;
      	}
      }a[N];
      int n,m;set<string>q;
      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+n+1);
      	int i = 0;
      	while(++i<=n){
      		if(m-a[i].p>=0){
      			q.insert(a[i].s);
      			m-=a[i].p;
      		}
      	}
      	for(auto i : q)
      		cout<<i<<'\n';
      	return 0;
      }
      
      • 1

      信息

      ID
      3429
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      递交数
      32
      已通过
      14
      上传者