Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

某市组织了一次中学生科技全能竞赛,每个选手要参加数学、物理、化学、天文、地理、生物、计算机和英语共八项竞赛。最后综合八项竞赛的成绩排出总名次。选手编号依次为:1,2…N(N为参赛总人数)。 排名规则如下:



1总位置分高的选手名次在前: 2若两个或两个以上的选手总位置分相同,则总分高的选手名次在前: 3若两个或两个以上的选手总位置分和总分均相同,则编号在前的选手名次在前。 请你为竞赛组委会编一程序,计算本次全能竞赛的总排名情况。

【输入格式】

输入文件为compe.in。文件的第一行为参赛总人数N(1<=n<=1000) ,从第二行到第N行依次为编号为1到编号为N的选手的成绩,每行有8个0~100

之间的整数,代表该选手的8项竞赛成绩 。同一行相邻两个数之间用一个空格符隔开。

【输出格式】

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

的编号。

Sample Input

3

72 82 73 68 95 86 82 90

72 90 50 60 80 70 65 80

72 82 73 68 95 86 82 90

Sample Output

1

3

2

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t076

【题解】



按照所给的公式做就好了;

不会很复杂;

然后在cmp里面改一下排序的依据;

sort的cmp很方便的;想咋排就咋排;



【完整代码】

#include <cstdio>
#include <algorithm> using namespace std; struct abc
{
int b[9],sum,bianhao;
double avg,weizhi[9],zongweizhi;
}; int n;
abc a[1010];
double avg[9],temp[9]; bool cmp(abc a,abc b)
{
if (a.zongweizhi > b.zongweizhi)
return true;
else
if (a.zongweizhi == b.zongweizhi && a.sum > b.sum)
return true;
else
if (a.zongweizhi == b.zongweizhi && a.sum == b.sum)
return a.zongweizhi < b.zongweizhi;
return false;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
scanf("%d",&n);
for (int i = 1;i <= n;i++)
{
a[i].sum = 0;
a[i].bianhao = i;
for (int j = 1;j <= 8;j++)
{
scanf("%d",&a[i].b[j]);
a[i].sum+=a[i].b[j];
avg[j] += a[i].b[j];
}
}
for (int j = 1;j <= 8;j++)
avg[j]/=n;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= 8;j++)
{
double temp3 = a[i].b[j]-avg[j];
if (temp3<0)
temp3 = -temp3;
temp[j] += temp3;
}
for (int j = 1;j <= 8;j++)
temp[j]/=n;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= 8;j++)
if (temp[j] == 0)
a[i].weizhi[j] = 0;
else
a[i].weizhi[j] = (a[i].b[j]-avg[j])/temp[j];
for (int i = 1;i <= n;i++)
{
double temp = 0,temp1 = 0;
for (int j = 1;j <= 3;j++)
temp += a[i].weizhi[j];
for (int j = 4;j <= 8;j++)
temp1+=a[i].weizhi[j];
temp1*=0.8;
a[i].zongweizhi = temp+temp1;
}
sort(a+1,a+1+n,cmp);
for (int i= 1;i <= n;i++)
printf("%d\n",a[i].bianhao);
return 0;
}

【t076】竞赛排名的更多相关文章

  1. [ACM_数据结构] 竞赛排名

    比赛排名 Time Limit:1000MS  Memory Limit:32768K Description: 欢迎参加浙江工业大学“亚信联创杯”程序设计大赛,本次竞赛采用与 ACM/ICPC 相同 ...

  2. 山东省第四届ACM大学生程序设计竞赛解题报告(部分)

    2013年"浪潮杯"山东省第四届ACM大学生程序设计竞赛排名:http://acm.upc.edu.cn/ranklist/ 一.第J题坑爹大水题,模拟一下就行了 J:Contes ...

  3. 03day2

    03day1 不说了,图论题因为没有把加边的过程放到循环里导致只有 10 分.(不要吐槽我啊...)   竞赛排名 排序 [问题描述] [输入] 文件的第一行为参赛总人数 N(1≤N≤1000),从第 ...

  4. UVa 10258 - Contest Scoreboard

    题目大意:关于acm竞赛排名的题目,对于参赛者首先按做出的题目排名,然后是罚时,最后是编号. 多关键字域排序问题. #include <cstdio> #include <cstri ...

  5. Lavarel artisan 命令

    [alex@iZ25c5aeyiiZ yiqizou3.0]# php artisan list Laravel Framework version Usage: command [options] ...

  6. [Object Tracking] Overview of algorithms for Object Tracking

    From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...

  7. CTF常见加密方式汇总

    1.栅栏密码 在IDF训练营里做过一道关于栅栏密码的问题. 栅栏密码的解法很简单,也有点复杂,字符长度因数多得会有很多个密码.对,栅栏密码的解法就是:计算该字符串是否为合数,若为合数,则求出该合数除本 ...

  8. NOI1997

    T1 竞赛排名 分析:模拟 超级大模拟,太弱了,写个模拟都要2个小时..写的又难看又麻烦..还需努力 var n,i,j,k:longint; t1:real; x,y:..,..] of real; ...

  9. 场景分割:MIT Scene Parsing 与DilatedNet 扩展卷积网络

    MIT Scene Parsing Benchmark简介 Scene parsing is to segment and parse an image into different image re ...

随机推荐

  1. 洛谷 P1644 跳马问题

    P1644 跳马问题 题目背景 在爱与愁的故事第一弹第三章出来前先练练四道基本的回溯/搜索题吧…… 题目描述 中国象棋半张棋盘如图1所示.马自左下角(0,0)向右上角(m,n)跳.规定只能往右跳,不准 ...

  2. 浩爷AC自己主动机高速学习方案

        今天弄完自己主动机之后.从那天比赛的阴影中爬出来了,猛地一看真不咋滴难,细致一看这尼玛还不如猛的一看. ..     必备算法:KMP,字典树(KMP我写了,字典树太简单,就是一个思想.我能够 ...

  3. 2.JPA学习总结

    转自:https://shmilyaw-hotmail-com.iteye.com/blog/1969190 前言 最近在做一个项目的时候因为牵涉到要对数据库的操作,在最开始实现的时候采用了直接的JD ...

  4. Spring-data-redis:特性与实例--转载

    原文地址:http://shift-alt-ctrl.iteye.com/blog/1886831 Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SD ...

  5. 翻翻git之---闪烁动画的TextView RevealTextView

    转载请注明出处:王亟亟的大牛之路 今天没有P1啦!. 对换工作有想法的.能够找昨天的P1.哈哈 地址:http://blog.csdn.net/ddwhan0123/article/details/5 ...

  6. 26、驱动调试之根据oops信息和堆栈确定出错的代码

    a.驱动作为模块:1. 根据pc值确定该指令属于内核还是外加的模块pc=0xbf000018 它属于什么的地址?是内核还是通过insmod加载的驱动程序?先判断是否属于内核的地址: 看System.m ...

  7. WPF中实现验证码

    原文:WPF中实现验证码 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/article/details/79563449 W ...

  8. win32中SetCapture 和 ReleaseCapture的使用(查一下在VCL中的使用)

    最近在用win32写<visual C++经典游戏程序设计>中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数. 那么为什么需要用 ...

  9. stm32的ADC规则组通道采样顺序设置

    先看一下固件库手册 再看一下手册上的例子:  有两个通道,,并且顺序如下

  10. js循环json数组

    例如数据库里面的json字符串是这样的 var str = '[{"name":"宗2瓜","num":"1",&quo ...