NC5278 B-每日一报
每日一报
https://ac.nowcoder.com/acm/contest/5278/B
Question
- 报送日期不一致的,则日期较近的在上,日期较久远的在下;
- 报送日期一致体温不一致的,则体温高的在上,体温低的在下;
- 报送日期和体温都一致的,则学号小的在上,学号大的在下。
Solution
结构体+自定义排序Code
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int>P; const double eps = 1e-8; const int NINF = 0xc0c0c0c0; const int INF = 0x3f3f3f3f; const ll mod = 1e9 + 7; const ll maxn = 1e6 + 5; const int N = 5e5 + 5; struct stu{ int x,y; double z; bool operator < (const stu &T){ if(x!=T.x) return x>T.x; else if(z!=T.z) return z>T.z; else return y<T.y; } }a[N]; int main(){ int n;scanf("%d",&n); int m=0; for(int i=1;i<=n;i++){ scanf("%d%d%lf",&a[i].x,&a[i].y,&a[i].z); if(a[i].z>=38.00) m++; } sort(a+1,a+1+n); cout<<m<<'\n'; for(int i=1;i<=n;i++) if(a[i].z>=38.00) printf("%d %d %.1f\n",a[i].x,a[i].y,a[i].z); return 0; }