PAT1055 原题题目大意及思路代码运行截图收获 原题 题目大意及思路 简单的结构体排序 代码 #include<iostream> #include<algorithm> #include<vector> using namespace std; struct node{ string name; int year; long int wealth; }; bool cmp(node a,node b){ if(a.wealth!=b.wealth) return a.wealth>b.wealth; else{ if(a.year!=b.year) return a.year<b.year; else return a.name<b.name; } } int main(){ int n,k; cin>>n>>k; vector<node> v; for(int i=0;i<n;i++){ node now; cin>>now.name>>now.year>>now.wealth; v.push_back(now); } sort(v.begin(),v.end(),cmp); for(int j=0;j<k;j++){ printf("Case #%d:\n",j+1); int m,amin,amax; cin>>m>>amin>>amax; vector<node> ans; for(int i=0;i<v.size()&&ans.size()<m;i++){ if(v[i].year>=amin&&v[i].year<=amax) ans.push_back(v[i]); } if(ans.size()==0) printf("None\n"); for(int i=0;i<ans.size();i++) printf("%s %d %ld\n",ans[i].name.c_str(),ans[i].year,ans[i].wealth); } return 0; } 运行截图 收获