空降题目处
点我点我点我

Description:

Input

输入文件为compe.in。文件的第一行为参赛总人数N(1<=N<=100),从第二行到第N行依次为编号1到编号N的选手的成绩,每行有8个0~100之间的整数,代表该选手的8项竞赛成绩xi1,xi2,。。。,xi8。同一行相邻两个数之间用一个空格符隔开。

Output

输出文件为compe.out。文件有N行,从第一行到第N行依次为排名第1的选手的编号,排名第2的选手的编号,。。。,排名第N的选手的编号。

Solution

Σ:sigma \Sigma:\text{sigma}求和符号。
按题意解即可,数据范围为 1≤N≤ 1\leq N\leq()

Program

C++

#include<iostream>
#include<fstream>
#include<cstdio>
#include<cmath>
using namespace std;int n,x[1001][9],num[1001],sumx[1001];
double t[9],avg[9],y[1001][9],sumy[1001];void sort(int l,int r);int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)for (int j=1;j<=8;j++){scanf("%d",&x[i][j]);avg[j]+=(double)(x[i][j]);sumx[i]+=x[i][j];}for (int j=1;j<=8;j++)avg[j]=avg[j]/(double)(n);for (int j=1;j<=8;j++){for (int i=1;i<=n;i++){t[j]+=abs(x[i][j]-avg[j]);num[i]=i;}t[j]=t[j]/n;}for (int i=1;i<=n;i++)for (int j=1;j<=8;j++){if (t[j]==0)y[i][j]=0;elsey[i][j]=(x[i][j]-avg[j])/t[j];}for (int i=1;i<=n;i++){for (int j=1;j<=8;j++)if (j<4)sumy[i]+=y[i][j];elsesumy[i]+=y[i][j]*0.8;}sort(1,n);for (int i=1;i<=n;i++)printf("%d\n",num[i]);
}void sort(int l,int r)
{int i=l,j=r,m3=num[(l+r)/2],m2=sumx[(l+r)/2];double m1=sumy[(l+r)/2];do{while ((sumy[i]>m1)||((sumy[i]==m1)&&(sumx[i]>m2))||((sumy[i]==m1)&&(sumx[i]==m2)&&(num[i]<m3)))i++;while ((sumy[j]<m1)||((sumy[j]==m1)&&(sumx[j]<m2))||((sumy[j]==m1)&&(sumx[j]==m2)&&(num[j]>m3)))j--;if (i<=j){swap(sumy[i],sumy[j]);swap(sumx[i],sumx[j]);swap(num[i],num[j]);i++;j--;}}while (i<=j);if (i<r)sort(i,r);if (l<j)sort(l,j);
}

Pascal

usesmath;vari,j,n:longint;x:array [0..1000,0..8] of longint;y:array [0..1000,0..8] of double;num,sumx:array [0..1000] of longint;sumy:array [0..1000] of double;t,avg:array [0..8] of double;procedure swap(var x,y:longint);
vart:longint;begint:=x;x:=y;y:=t;end;procedure swap(var x,y:double);
vart:double;begint:=x;x:=y;y:=t;end;procedure sort(l,r:longint);
varm1:double;i,j,m2,m3:longint;begini:=l;j:=r;m1:=sumy[(l+r) div 2];m2:=sumx[(l+r) div 2];m3:=num[(l+r) div 2];repeatwhile ((sumy[i]>m1) or ((sumy[i]=m1) and (sumx[i]>m2)) or ((sumy[i]=m1) and (sumx[i]=m2) and (num[i]<m3))) doinc(i);while ((sumy[j]<m1) or ((sumy[j]=m1) and (sumx[j]<m2)) or ((sumy[j]=m1) and (sumx[j]=m2) and (num[j]>m3))) dodec(j);if i<=j thenbeginswap(sumy[i],sumy[j]);swap(sumx[i],sumx[j]);swap(num[i],num[j]);inc(i);dec(j);end;until i>j;if i<r thensort(i,r);if l<j thensort(l,j);end;beginreadln(n);for i:=1 to n dofor j:=1 to 8 dobeginread(x[i][j]);avg[j]:=avg[j]+x[i][j];sumx[i]:=sumx[i]+x[i][j];end;for j:=1 to 8 doavg[j]:=avg[j]/n;for j:=1 to 8 dobeginfor i:=1 to n dobegint[j]:=t[j]+abs(x[i][j]-avg[j]);num[i]:=i;end;t[j]:=t[j]/n;end;for i:=1 to n dofor j:=1 to 8 dobeginif t[j]=0 theny[i][j]:=0elsey[i][j]:=(x[i][j]-avg[j])/t[j];end;for i:=1 to n dobeginfor j:=1 to 8 doif j<4 thensumy[i]:=sumy[i]+y[i][j]elsesumy[i]:=sumy[i]+y[i][j]*0.8;end;sort(1,n);for i:=1 to n dowriteln(num[i]);end.

July 16th 模拟赛C T1 竞赛排名 Solution相关推荐

  1. July 16th 模拟赛C T4 奶牛排队 Solution

    空降题目处 点我点我点我 Description: 奶牛在熊大妈的带领下排成了一条直队. 显然,不同的奶牛身高不一定相同..... 现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮 ...

  2. July 16th 模拟赛C T3 圆周舞蹈 Solution

    空降题目处 点我点我点我 Description: 熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到奶牛B的 ...

  3. July 16th 模拟赛C T2 奶牛晒衣服 Solution

    空降题目处 点我点我点我 Description: 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负 ...

  4. July 14th 模拟赛C T3 灌水 Solution

    空降题目处 点我点我点我 Description: 学生都很喜欢灌水,第一天只有Alice给她的每个朋友灌了一次水,从第二天开始,所有学生(包括Alice)将会有规律地去灌水: •如果前一天被灌了奇数 ...

  5. 模拟赛DAY1 T1大美江湖

    这就是一个模拟题,注意1234分别对应左右上下横坐标和纵坐标的判断就好了 题解: 需要注意的是,向上取整ceil函数是对于一个double值返回一个double值,也就是说在ceil里面的类型一定要是 ...

  6. 【faebdc的模拟赛】T1错位

    [题目描述] Frank 打字的时候经常打错.在打一个字母的时候,他可能按的是那个字 母上.下.左或右的键(如果存在的话),当然他也会打对.比如他想打"F" 的话,可能打成&quo ...

  7. June 11th 模拟赛C T1 Sandcas Solution

    空降题目处 点我点我点我 Description: FJ居住的城堡有N个城墙(1<=N<=25,000),编号为1到N,每个城墙的高度为M_i(1<=M_i<=100,000) ...

  8. YbtOj 冲刺 NOIP2020 模拟赛 Day10 T1 区间均值

    文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...

  9. 模拟赛20210810A T1

    题目 大意: 给定n个数a1a_1a1​~ana_nan​ 求任意一对数(ai,aja_i,a_jai​,aj​) 的 ∣(i−j)∗(ai−aj)∣|(i-j)*(ai-aj)|∣(i−j)∗(ai ...

最新文章

  1. ORA-00257 解决办法
  2. 深入探究 Win32 PE 文件格式
  3. c字符串分割成数组_leetcode第31双周赛第三题leetcode1525. 字符串的好分割数目
  4. netflix会员和非会员的区别_Netflix开放10部作品免费给非会员试看
  5. c语言分量的运算符,C语言基础(04-运算符和表达式)
  6. Ajax.dll 使用
  7. Entity Framework 6 执行Linq to Entities异常“p__linq__1 : String truncation: max=0, len=2, value=‘测试‘“
  8. python函数传入对象
  9. 【OpenGL】Shader实例分析(七)- 雪花飘落效果
  10. android蓝牙取sbc音频数据
  11. Unity3d 周分享(22期 2019.8.30 )
  12. 信号的平均功率与均方值
  13. Mysql数据库入门 (基础知识点 由来 各种指令 如何运用)
  14. 弘辽科技:商家直通车操作
  15. 【美团滑块】猫眼下单、点评
  16. java根据生日判断生日和星座
  17. Thinkpad linux 读卡器驱动
  18. 深圳大学软工专硕数二英二改为数一英一,计算机专硕改为英一
  19. OSChina 周五乱弹 —— 破手机比 2080ti 核动力煤气灶还贵
  20. 生命周期onLoad和onShow的区别

热门文章

  1. 小红书主页爬取_小红书图片爬取下载-小红书图片爬取便携版
  2. IP地理位置定位系统之定位系统研发
  3. android课程表删除课程,超级课程表话题删除方法
  4. 调节阀故障一般都是什么原因呢?
  5. 数读 | 鹿晗是不是糊了?
  6. Java基础1:课程概述
  7. LibreOffice Java使用
  8. DIY家居设计软件开发
  9. C51程序溢出错误Program Size: data=132.1 xdata=0 code=3022 Target not created.
  10. 用计算机亩换算成平方,一亩多少平方米(一亩地换算成平方怎么计算)