1 条题解

  • 1

    考查内容

    结构体排序

    思路分析

    主要在于 cmp 函数,先按分数排序,如果相同后按学号排序。所以我们可以写出:

    bool cmp(stu a,stu b){
    	if(a.sc!=b.sc)	return a.sc>b.sc;
    	else	return a.id<=b.id;
    }
    

    code

    #include<bits/stdc++.h>
    using namespace std;
    struct stu{
    	long long id,sc;
    }t[200005];
    bool cmp(stu a,stu b){
    	if(a.sc!=b.sc)	return a.sc>b.sc;
    	else	return a.id<=b.id;
    }
    int main(){
    	freopen("score.in","r",stdin);
    	freopen("score.out","w",stdout);
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>t[i].sc;
    		t[i].id=i;
    	}
    	sort(t+1,t+n+1,cmp);
    	for(int i=1;i<=n;i++){
    		cout<<t[i].id<<"\n";
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    772
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    37
    已通过
    3
    上传者