Problem F: 合唱比赛开始了!
Problem F: 合唱比赛开始了!
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 440 Solved: 201
[Submit][Status][Web Board]
Description
为迎接计算机科技文化节的到来,我院面向一年级学生举办了一场合唱比赛。邀请了若干位专家担任评委,并为每个参赛队评分。现在,请设计一个程序来展示这个比赛过程。
其中,类 Team描述了参赛队的信息,包括:专业名称、每个专家给该参赛队的评分以及最终得分等。类Contest描述了竞赛的信息,包括各个参赛队的列表,并提供
1. void Input()方法:用于输入所有参赛队的信息;
2. void Compute()方法:计算每个代表带队的最终得分。
3. void Show()方法:显示所有代表队的信息。
4. void Sort()方法:根据代表队的最终得分进行排序。
要求:
1. 假设有M个代表队参加比赛,有N个评委进行评分,且评分标准包括P项。
2. 每个评委将为每个代表队打出P个分项分,每项得分都在0~100之间,一个评委为一个代表队评出的最终分数是所给出的所有分项分的平均分。如:P=3,评委1给代表队x打的3个分数为100,90,80,则x代表队得到的来自于评委1的分数为(100+90+80)/3=90。
3. 每个代表队得到的最终分数是N个评委的给出的N个分数值,去掉1个最高分,1个最低分,剩余分数的平均值。如:经过上一步的计算,x代表队得到的来自N=4个评委的得分分别是100,90,80,70,则x代表队的最终得分是(90+80)/2=85。
Input
输入有多行。第一行分别输入M>1,N>3,P>0表示代表队数量、评委人数以及评分标准数。
之后分别输入M个代表的信息。每个代表队信息的第一行是队伍的专业名(10个字母以内),之后的N行是N个评委为该代表队打的分数,其每行有P个数,分别是该评委为该代表队打出的各个分项分。
Output
输出有M行,根据每个代表队的得分,按照从大到小的顺序输出。其中专业名称靠左输出,占11个字符,之后输出成绩。成绩输出2位小数。假定所有队伍的得分都不相同。
Sample Input
MajorA
90 90 90 90 90
82 83 81 82 86
70 70 70 70 70
90 90 90 90 90
MajorAA
85 79 90 78 80
80 80 80 80 80
81 81 83 82 81
80 80 80 80 80
MajorAaa
70 70 70 70 70
70 70 70 70 70
70 70 70 70 70
70 70 70 70 70
Sample Output
MajorAA 80.80
MajorAaa 70.00
HINT
用left来让输出左对齐。
Append Code
#include <iostream>
#include <string>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
double sum[30];
class Team
{
friend class Contest;
public:
string majority;
double score;
double endrank;
};
bool cmp(Team a,Team b)
{
return a.endrank>b.endrank;
}
class Contest:public Team
{friend class Team;
public:
Team s[100];
int m;
void Input()
{
int n,p;
cin>>m>>n>>p;
for(int i=0;i<m;i++)
{
fill(sum,sum+m+1,0);
int t;
cin>>s[i].majority;
for(int j=0;j<n;j++)
{
for(int k=0;k<p;k++)
{
cin>>t;
sum[j]+=t;
}
sum[j]=sum[j]*1.0/p;
}
sort(sum,sum+n);
double add=0;
for(int l=1;l<n-1;l++)
add+=sum[l];
s[i].endrank=add*1.0/(n-2);
}
}
void Compute(){}
void Sort(){}
void Show()
{
sort(s,s+m,cmp);
for(int i=0;i<m;i++)
{
cout<<setiosflags(ios::left)<<setw(11)<<s[i].majority<<fixed<<setprecision(2)<<s[i].endrank<<endl;
}
}
};
int main()
{
Contest contest;
contest.Input();
contest.Compute();
contest.Sort();
contest.Show();
return 0;
}
Problem F: 合唱比赛开始了!的更多相关文章
- 实验12:Problem F: 求平均年龄
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem F
Problem F Funny Car Racing There is a funny car racing in a city with n junctions and m directed roa ...
- Codeforces Gym 100500F Problem F. Door Lock 二分
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
- Codeforces Gym 100002 Problem F "Folding" 区间DP
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
- Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- Problem F: Exponentiation
Problem F: ExponentiationTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 4 Solved: 2[Submit][Status][W ...
- 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
- Problem F Plug It In!
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
- 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem F. Judging Time Prediction 优先队列
Problem F. Judging Time Prediction 题目连接: http://www.codeforces.com/gym/100253 Description It is not ...
随机推荐
- JPEG流封装AVI视频
前言:前几天工作任务,要把JPEG流封装为AVI视频,就找了些AVI文件结构资料和示例代码研究了下,现将学习总结及最终完成的可用代码分享出来,由于本人也是现学现用,如有不恰当或错误之处,欢迎提出! 1 ...
- 【POJ】2348 Euclid's Game(扩欧)
Description Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first pl ...
- 如何用java语言获取某个网页的源代码
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class W ...
- sql server作业实现数据同步
作业介绍 SQL SERVER的作业是一系列由SQL SERVER代理按顺序执行的指定操作.作业可以执行一系列活动,包括运行Transact-SQL脚本.命令行应用程序.Microsoft Acti ...
- Oracle虚拟机VirtualBox安装成功后的注意事项
首先VirtualBox的安装教程 (1)按文档安装 (2)安装完之后配置共享文件夹 (3)安装windowxp镜像 (4)安装Oracle 详情请见Oracle安装文档 (5)启动xp虚拟机 (6 ...
- NPOI导出excel(带图片)
近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新 ...
- 通过ssh秘钥的方式可以连接上CE68交换机
结论:按照CE68交换机的用户手册中的指导,可以通过ssh 秘钥的方式连接上交换机. 1.先按照eNSP连接到网卡的方式,给CE68配置一个ip地址: 192.168.56.2 2.按照交换机的用户指 ...
- OpenGL ES2.0光照
一.简单光照原理 平行光(正常光) 光照效果= 环境颜色 + 漫反射颜色 + 镜面反射颜色 点光源 光照效果= 环境颜色 + (漫反射颜色 + 镜面反射颜色)× 衰减因子 聚光灯 光照效果= ...
- nodejs+mongoose操作mongodb副本集实例
继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目 express 项目名称 2:npm install mongoose 安装mongo ...
- SQLyog快捷键汇总
Ctrl+M 创建一个新的连接Ctrl+N 使用当前设置新建连接Ctrl+F4 断开当前连接 对象浏览器 F5 刷新对象浏览器(默认)Ctrl+B 设置焦点于对象浏览器 SQL 窗 ...