问题标题: 酷町堂:1167

0
0
丁政元
丁政元
初级光能
初级光能

#include<iostream>
using namespace std;
int main(){
/*每人都有一个编号,植树都可以获得植树积分,
最后评出植树积分最多的前三位小朋友和植树积分最少的后三位小朋友的编号(注意:最终每位小朋友获得的总植树积分不同,
且求解的小朋友编号按升序排列)
输入描述 Input Description
输入数据有2行,第1行一个数,表示小朋友个数,第2行有n个分别用空格分开的数,表示植树积分,第1个数对应编号为1的小朋友,
第2个数对应编号为2的小朋友……其他小朋友编号依次类推,最后一个小朋友编号为n,测试数据能保证每位小朋友最终获得的总植树积分不同。
输出描述 Output Description
输出数据有2行,第1行为总植树积分排名前三的小朋友编号,第2行为排名后三名的小朋友编号。编号按升序排列。*/
    int a[10001],b[10001],n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=i;
    }
    for(int i=1;i<n;i++){
        for(int j=i;j<=n;j++){
            if(a[i]<a[j]){
                swap(a[i],a[j]);
                swap(b[i],b[j]);
            }
        }
    }
    cout<<b[3]<<" "<<b[2]<<" "<<b[1]<<" "<<endl;
    cout<<b[n]<<" "<<b[n-1]<<" "<<b[n-2];
return 0;
}
 


0
刘景程
刘景程
新手光能
新手光能

模拟+排序

后排兜售小黑猫

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

结构体啊,用结构体写,再用sort排序,不要用for,这样会超时的

张恩泽在2020-06-03 17:26:37追加了内容

这道题还要判断下标的先后,还要排序输出,没有那么简单

0
0
0
0
0
王文博
王文博
缔造者之神
缔造者之神

要用sort排序。

还要加上头文件(bits/stdc++.h)

我要回答