1 条题解

  • 0
    @ 2025-3-9 14:27:43
    #include<bits/stdc++.h>
    using namespace std;
    
    typedef long long ll;
    const int N = 1e6+5, P=7;
    const int inf = 0x3f3f3f3f;
    
    struct Node{
    	string name;
    	int y,m,d,id;
    	
    	bool operator< (const Node & rhs) const {
    		if(y != rhs.y) return y < rhs.y;
    		if(m != rhs.m) return m < rhs.m;
    		if(d != rhs.d) return d < rhs.d;
    		return id > rhs.id;
    	}
    }a[105];
    
    bool compare(Node l, Node r){
    	if(l.y != r.y) return l.y < r.y;
    	if(l.m != r.m) return l.m < r.m;
    	if(l.d != r.d) return l.d < r.d;
    	return l.id > r.id;
    }
    int main(){
    	int n; cin>>n;
    	string name;
    	int y,m,d,id;
    	for(int i=1; i<=n; i++) {
    		cin>>name>>y>>m>>d;
    		a[i] = {name, y,m,d, i}; // C++11
    	}
    //	sort(首地址, 首地址+元素数量, 比较方式);
    	// sort(a+1, a+1+n, compare);
    	sort(a+1, a+1+n);
    	for(int i=1; i<=n; i++)
    		cout<<a[i].name<<endl;
    	return 0;
    } 
    
    • 1

    信息

    ID
    253
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    58
    已通过
    18
    上传者