2 条题解
-
1
#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
# 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
- 上传者