问题标题: 酷町堂:1167:植树积分(points)

0
0
已解决
黄依成
黄依成
中级天翼
中级天翼
#include<iostream>
#include<algorithm>
using namespace std;
struct p{//定义结构体p 
    int cj;//cj表示成绩 
}a[100005],b[100005];
bool cmp(p a,p b){
    return a.cj>b.cj;
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].cj;//输入成绩
        b[i].cj=a[i].cj; 
    }
    sort(a+1,a+n+1,cmp);
    for(int i=3;i>=1;i--){
        for(int j=1;j<=n;j++){
            if(b[j].cj==a[i].cj){
                cout<<j<<" ";
            }
        }
    }
    cout<<endl;
    for(int i=n;i>=n-2;i--){
        for(int j=1;j<=n;j++){
            if(b[j].cj==a[i].cj){
                cout<<j<<" ";
            }
        }
    }
    return 0;
}

虽然思路贼差,太暴力了,但也没TLE啊,倒是WA了。

黄依成在2020-05-27 22:11:44追加了内容

40分


0
0
张恩泽
张恩泽
高级天翼
高级天翼

结构体你会写吧,用sort从大到小排序都会吧

核心代码:

 sort(a+1,a+n+1,cmp1);
    sort(a+1,a+4,cmp2);
    sort(a+n-2,a+1+n,cmp2);
    cout<<a[1].id<<' '<<a[2].id<<' '<<a[3].id<<endl;
    cout<<a[n-2].id<<' '<<a[n-1].id<<' '<<a[n].id;

a[i].score是从大到小排序,a[i].id是从小到大排序

bool cmp1(stu a,stu b)
{
    score从大到小排;
}
bool cmp2(stu a,stu b)
{
    id从小到大牌;
}

 

0
0
张恩泽
张恩泽
高级天翼
高级天翼

送你一个网址

张恩泽在2020-05-28 12:11:07追加了内容

看完就采纳吧

张恩泽在2020-05-28 12:11:16追加了内容

看完就采纳吧

0
我要回答