G - SDOI
The Annual National Olympic of Information(NOI) will be held.The province of Shandong hold a Select(which we call SDOI for short) to choose some people to go to the NOI. n(n≤100) people comes to the Select and there is m(m≤50) people who can go to the NOI.
According to the tradition and regulation.There were two rounds of the SDOI, they are so called "Round 1" and "Round 2", the full marks of each round is 300.
All the n people take part in Round1 and Round2, now the original mark of every person is known. The rule of SDOI of ranking gets to the "standard mark". For each round there is a highest original mark,let's assume that is x.(it is promised that not all person in one round is 0,in another way,x>0). So for this round,everyone's final mark equals to his/her original mark∗(300/x).
After we got everyone's final mark in both round.We calculate the Ultimate mark of everyone as 0.3∗round1′s final mark + 0.7∗round2′s final mark.It is so great that there were no two persons who have the same Ultimate mark.
After we got everyone's Ultimate mark.We choose the persons as followed:
To encourage girls to take part in the Olympic of Information.In each province,there has to be a girl in its teams.
- If there is no girls take part in SDOI,The boys with the rank of first m enter the team.
- If there is girls, then the girl who had the highest score(compared with other girls) enter the team,and other(boys and other girls) m-1 people with the highest mark enter the team.
Just now all the examination had been finished.Please write a program, according to the input information of every people(Name, Sex ,The original mark of Round1 and Round2),Output the List of who can enter the team with their Ultimate mark decreasing.
Input
There is an integer T(T≤100) in the first line for the number of testcases and followed T testcases.
For each testcase, there are two integers n and m in the first line(n≥m), standing for the number of people take part in SDOI and the allowance of the team.Followed with n lines,each line is an information of a person. Name(A string with length less than 20,only contain numbers and English letters),Sex(male or female),the Original mark of Round1 and Round2 (both equal to or less than 300) separated with a space.
Output
For each testcase, output "The member list of Shandong team is as follows:" without Quotation marks.
Followed m lines,every line is the name of the team with their Ultimate mark decreasing.
Sample Input
2
10 8
dxy male 230 225
davidwang male 218 235
evensgn male 150 175
tpkuangmo female 34 21
guncuye male 5 15
faebdc male 245 250
lavender female 220 216
qmqmqm male 250 245
davidlee male 240 160
dxymeizi female 205 190
2 1
dxy male 300 300
dxymeizi female 0 0
Sample Output
The member list of Shandong team is as follows:
faebdc
qmqmqm
davidwang
dxy
lavender
dxymeizi
davidlee
evensgn
The member list of Shandong team is as follows:
dxymeizi
Hint
For the first testcase: the highest mark of Round1 if 250,so every one's mark times(300/250)=1.2, it's same to Round2.
The Final of The Ultimate score is as followed
faebdc 298.20
qmqmqm 295.80
davidwang 275.88
dxy 271.80
lavender 260.64
dxymeizi 233.40
davidlee 220.80
evensgn 201.00
tpkuangmo 29.88
guncuye 14.40
For the second testcase,There is a girl and the girl with the highest mark dxymeizi enter the team, dxy who with the highest mark,poorly,can not enter the team.
就是一个简单的排序,难得这题直接过了
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include <iomanip>
#include<cmath>
#include<string.h>
#include<algorithm>
#define sf scanf
#define pf printf
#define pb push_back
#define mm(x,b) memset((x),(b),sizeof(x))
#include<vector>
#include<map>
//#define for(i,a,b) for(int i=a;i<b;i++)
typedef long long ll;
typedef long double ld;
const ll mod=1e9+7;
using namespace std;
const double pi=acos(-1.0);
int max(int a,int b){return a>b?a:b;}
struct qq
{
	string name;
	string se;
	int x1,x2;
	double score;
}a[105];
bool cmp(qq a,qq b)
{
	return a.score >b.score;
}
int main()
{
	int re;
	cin>>re;
	while(re--)
	{
		int n,m;
		cin>>n>>m;int temp=0;
		int x,y;
		int Max1=0,Max2=0;
		for(int i=0;i<n;i++)
		{
			cin>>a[i].name>>a[i].se>>a[i].x1>>a[i].x2;
			if(a[i].se=="female") temp=1;
			Max1=max(Max1,a[i].x1);
			Max2=max(Max2,a[i].x2);
		}
		for(int i=0;i<n;i++)
			a[i].score=0.3*a[i].x1*300/Max1+0.7*a[i].x2 *300/Max2;
		sort(a,a+n,cmp);
		pf("The member list of Shandong team is as follows:\n");
		int ans=0,i;
		if(temp)
		{
			for(i=0;i<m-1;i++)
			{
				cout<<a[i].name <<endl;
				if(a[i].se=="female")
				ans=1;
			}
			if(ans==0)
			for(;i<n;i++)
			{
				if(a[i].se =="female")
				{
					cout<<a[i].name<<endl;;
					break;
				}
			}
			else
			cout<<a[i].name<<endl ;
		}else
		{
			for(i=0;i<m;i++)
				cout<<a[i].name <<endl;
		}
	}
	return 0;
}
G - SDOI的更多相关文章
- Storyboards Tutorial 03
		这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ... 
- 文件图标SVG
		<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink ... 
- SDOI Day1
		好了做了SDOI day1的3道题,来讲下做法及感想吧 T1:排序(暴力,搜索) 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3990 我们可 ... 
- HDU 5499:SDOI
		SDOI Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Sub ... 
- Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和
		下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ... 
- [BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT)
		[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于质数M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数 ... 
- SDOI前的小计划
		upd:19.4.5 放出来了.如果明天考了我没复习到的认了.考到了复习了的还没拿到理想分的就回来谢罪(bushi www SDOI一轮倒计时4天啦w 所以得有个小计划吧QwQ 4.2 目标:BZOJ ... 
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
		在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ... 
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0)  (完整)
		---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ... 
随机推荐
- Word批量删除所有书签
			Word中的书签功能可快速.准确定位文档中特定的位置,经常用于模板定制.文档产出等. 可一直以来,书签功能存在一个不便的操作,即无法批量删除,只能单个删除,操作极不友好. 解决方案 我用代码暂时还改变 ... 
- XMAL定义后台数据
			头部调用程序集xmlns:sys="clr-namespace:System;assembly=mscorlib" <Window.Resources><!--定 ... 
- tmux 共享窗口大小
			http://www.cnblogs.com/bamanzi/p/tmux-share-windows-between-sessions.html 
- Open-Source performance testing tools(From other site)
			http://www.appdynamics.com/blog/php/tools-of-the-trade-for-performance-and-load-testing/ 
- excel随机函数
			=D7+RAND()*(8000-4250) 含义: 1.在D7数值的基础上,随机加一个数值,该数值的随机范围为4250——8000. 2.注意8000和4250要反着写 
- LINQ to Entities 比较日期
			//获取当天的数据 DrawRecordDA _recordDA = new DrawRecordDA(); var query = _recordDA.GetQuery(); //筛选 当天 //q ... 
- 【RS】Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model - 当因式分解遇上邻域:多层面协同过滤模型
			[论文标题]Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model (35th-ICM ... 
- APP安全测评checklist---Android
			首先,你的app得先混淆:AndroidStudio 混淆打包 先来个checklist: 编号 检查项目 测评结果 1 明文传输用户名.密码和验证码等敏感信息. 2 不安全的本地存储. 3 泄漏后台 ... 
- Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)
			配置Redis参考:http://blog.csdn.net/zsg88/article/details/73715947 使用Ruby配置集群参考:https://www.cnblogs.com/t ... 
- Lambert漫反射的BRDF
			Lambert漫反射brdf=Albedo/pi. 推导: 如图,设Lambert面元获得入射照度Ei,各方向均匀释放亮度,每个方向释放的亮度都是Lo. 又设此表面反射率为Albedo,根据反射率定义 ... 
