1 条题解
-
0
自动搬运
来自洛谷,原作者为

niuniudundun
天禄搬运于
2025-08-24 23:11:35,当前版本为作者最后更新于2025-03-21 21:33:02,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
前置知识:排序、结构体。
首先结构体中需要编号 、分数 ,设这个结构体数组为 ,例如访问数组的编号为 。
接着输入 ,使用循坏遍历 ,让 ,定义两个变量 用于计算最大最小值。接着输入分数 ,并求出最大最小值 和求出总和。然后让总和 再除以 ,这是平均分,也就是 。
然后按 的高低排序,高得在前;相同时 按大小排序,小在前。
最后输出。
代码:
复杂度:。
#include<bits/stdc++.h> using namespace std; const int maxn=101; int n,m; int a[maxn][maxn]; struct node{ double answer; int id; }ans[maxn]; bool cmp(node x,node y){ return x.answer==y.answer?x.id<y.id:x.answer>y.answer; } signed main(){ cin>>n>>m; for(int i=1;i<=n;i++){ ans[i].id=i; int mina=101,maxa=-1; for(int j=1;j<=m;j++){ cin>>a[i][j]; mina=min(a[i][j],mina); maxa=max(a[i][j],maxa); ans[i].answer+=a[i][j]; } ans[i].answer=(ans[i].answer-mina-maxa)/(m-2); } sort(ans+1,ans+n+1,cmp); for(int i=1;i<=n;i++){ cout<<ans[i].id<<" "; } return 0; } /* 4 4 4 70 69 34 18 43 85 71 100 50 69 80 67 82 90 43 */
- 1
信息
- ID
- 11745
- 时间
- 1000ms
- 内存
- 1024MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者