正经题解
2026-06-23 16:47:48
发布于:上海
6阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
struct node{//定义结构体
string s;
int p , v;
} a[1005];
bool cmp(node x , node y){//字符串排序
if(x.v != y.v){
return x.v < y.v;
}
if(x.p != y.p){
return x.p < y.p;
}
return x.s < y.s;
}
int main(){
int m , n;
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 , cmp);//sort排序,排a结构体
int cnt = 0;
string t[1005];
for(int i = 1 ; i <= n ; i++){
if(a[i].p <= m){
m -= a[i].p;
t[++cnt] = a[i].s;
}
}
sort(t + 1 , t + cnt + 1);//sort排序,排t数组
for(int i = 1 ; i <= cnt ; i++)
{
cout << t[i] << endl;
}
return 0;
}
这里空空如也



有帮助,赞一个