竞赛
考级
sort好题,数据水。 首先我们要定义一个结构体: why要用结构体: 因为这样y,m,d,s,id是“绑定”的,如果直接定义数组会在排序时让y,m,d,s,id分开。 举个例子(直接写数组): 名字 月 a 5 b 3 c 1 排升序后是: a 1 b 3 c 5 不对应。 然后写一个比较(cmp)函数: 难点讲完了(其实不难) 完整代码:
#include <iostream> #include <bits/stdc++.h> using namespace std; using ll = long long; int n; struct A { string s; int y,m,d,id; }a[110]; bool cmp( A a,A b ) { if( a.y != b.y ) return a.y < b.y; if( a.m != b.m ) return a.m < b.m; if( a.d != b.d ) return a.d < b.d; return a.id > b.id; } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for( int i = 0;i < n;i++ ) { cin >> a[i].s >> a[i].y >> a[i].m >> a[i].d; a[i].id = i; } sort( a,a + n,cmp ); for( int i = 0;i < n;i++ ) cout << a[i].s << endl; return 0; }
提交答案之后,这里将显示提交结果~