3 条题解
-
1
struct P { string id; int a1; int o1;//记录顺序 bool cmp(P a, P b) { if(a.a1 >= 60 && b.a1 >= 60) { //对60岁以上进行排序 if(a.a1 == b.a1) return a.o1 <b.o1; return a.a1 > b.a1;//否则正常 } if(a.a1 >= 60) return true; if(b.a1 >= 60) return false; return a.o1 < b.o1; } for(int i = 0; i < n; i++) { cin >> p[i].id >> p[i].a1; p[i].o1 = i;//记录顺序 } sort(p, p + n, cmp); for(int i = 0; i < n; i++) cout << p[i].id << endl; -
0
#include<bits/stdc++.h> using namespace std;
struct a { string name; int x; };
int main() { int n; cin>>n;
a A[n],B[n]; for(int i=0;i<n;i++) { cin>>A[i].name; B[i].name=A[i].name; cin>>A[i].x; B[i].x=A[i].x; } for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(A[i].x>A[j].x) swap(A[i],A[j]); for(int i=0;i<n;i++) if(A[i].x>=60) cout<<A[i].name<<endl; for(int i=0;i<n;i++) if(B[i].x<60) cout<<B[i].name<<endl; return 0;}
-
0
bool cmp(Peo a, Peo b) { if(a.age >= 60 && b.age >= 60)//如果都是老人 { if(a.age == b.age)//如果年龄相同 return a.num < b.num;//序号小的在前面 else return a.age > b.age;//年龄大的在前面 } else if(a.age < 60 && b.age < 60)//如果都不是老人 return a.num < b.num;//序号小的在前面 else//一个老人一个不是老人 return a.age > b.age;//老人年龄大,在前面 }
- 1
信息
- ID
- 507
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 48
- 已通过
- 12
- 上传者