Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
42537 | 惠子铭 | [贪心算法]排队接水 | C++ | 通过 | 0 MS | 192 KB | 751 | 2024-03-01 15:40:22 |
#include<stdio.h> #include<algorithm> using std::sort; struct water { int num,time;} p[1002]; double ans; inline bool comp(water a,water b) { //双关键字排序 if(a.time!=b.time) return a.time<b.time; return a.num<b.num; } int main() { int n; scanf("%d",&n); for(int i=1; i<=n; i++) { //输入时间并重置序号 scanf("%d",&p[i].time); p[i].num=i; } sort(p+1,p+n+1,comp); for(int i=1; i<=n; i++) //排完序的数组即为顺序,输出即可 printf("%d ",p[i].num); printf("\n"); for(int i=1; i<=n; i++) ans+=i*p[n-i].time; //核心公式 ans/=n; printf("%.2f",ans); return 0; }