求助
  • 板块P1104 生日
  • 楼主AKkkk_TIX
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/7 17:03
  • 上次更新2024/8/7 18:37:47
查看原帖
求助
1041765
AKkkk_TIX楼主2024/8/7 17:03

用了运算符重载,注意不要开O2,要不然全RE

#include <bits/stdc++.h>
using namespace std;
struct stu {
	string name;
	int year, month, day, num;
	friend istream & operator >> ( istream &in, stu &x ) {
		cin >> x.name >> x.year >> x.month >> x.day;
	}
    bool operator < ( stu x ) const {
		return ( 
		         year < x.year 
		      || year == x.year && month < x.month 
		      || year == x.year && month == x.month && day < x.day 
		      || year == x.year && month == x.month && day == x.day 
		                                            && num > x.num
		      );
	}
} a[100];
int n, i, j;
int main() {
	cin >> n;
	for (i = 0; i < n; i++){
		cin >> a[i];
		a[i].num = i + 1;
	}
	for(i = 0;i < n - 1;i++) {
		bool b = true;		                                                            
		for(j = n - 1;j >= i + 1;j--)
			if ( a[j] < a[j - 1] ){
				swap ( a[i], a[j] );
                b = false;
            }
		if( b ) break;
	}

	for (i = 0; i < n; i++){
		cout << a[i].name;
        if(i != n - 1)
            cout << "\n";
    }
	return 0;
}

码风很奇怪大家凑活看吧

测评记录

2024/8/7 17:03
加载中...