1 solutions

  • 0
    @ 2026-8-20 13:54:37
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1010;
    struct Node{
    	string name;
    	int p;
    	int price;
    }s[N];
    bool cmp(Node a,Node b)
    {
    	if(a.p<b.p) return 1;
    	if(a.p==b.p&&a.price<b.price) return 1;
    	if(a.p==b.p&&a.price==b.price&&a.name<b.name) return 1;
    	return 0;
    }
    string ss[N];
    int main()
    {
    	int m,n;
    	cin>>m>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>s[i].name>>s[i].price>>s[i].p;
    	}
    	sort(s+1,s+n+1,cmp);
    	int idx=0;
    	for(int i=1;i<=n;i++)
    	{
    		 
    		if(s[i].price<=m)
    		{
    			
    			m-=s[i].price;
    			ss[++idx]=s[i].name;
    		}
    	}
    	sort(ss+1,ss+idx+1);
    	for(int i=1;i<=idx;i++)
    	{
    		cout<<ss[i]<<endl;
    	}
    	return 0;
    }
    
    
    • 1

    Information

    ID
    3022
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    # Submissions
    16
    Accepted
    2
    Uploaded By