#include <bits/stdc++.h> using namespace std;

//luogu#P1223. 排队接水 //反证证明可行

int sum; const int maxn = 1005; struct stu{ int time; int id; int s; }a[maxn]; int main(){ int n; cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i].time; a[i].id=i; } for(int i = 1;i<n;i++){ for(int j=i+1;j<=n;j++){ if(a[i].time>a[j].time){ stu temp = a[j]; a[j]=a[i]; a[i]=temp; } } } for(int i = 1; i<=n;i++){ cout<<a[i].id<<' '; a[i].s+=a[i-1].s+a[i-1].time; sum+=a[i].s; } // cout<<sum; cout<<endl<<fixed<<setprecision(2)<<1.0*sum/n; return 0; }

1 条评论

  • @ 2025-8-9 17:34:39

    在排序时,如果timetime相同,应该按 idid升序排列

    CodeCode

    
    bool cmp(stu x, stu y) {
    
    if (x.time == y.time) return x.id < y.id; // 时间相同,按 id 升序
        return x.time < y.time; // 否则按时间升序
    }
    
    • 1

    信息

    ID
    5281
    时间
    ms
    内存
    MiB
    难度
    3
    标签
    递交数
    85
    已通过
    44
    上传者