CodeForces 24B F1 Champions(排序)
来源:互联网 发布:单片机最小系统各数值 编辑:程序博客网 时间:2024/05/21 10:09
Formula One championship consists of series of races called Grand Prix. After every race drivers receive points according to their final position. Only the top 10 drivers receive points in the following order 25, 18, 15, 12, 10, 8, 6, 4, 2, 1. At the conclusion of the championship the driver with most points is the champion. If there is a tie, champion is the one with most wins (i.e. first places). If a tie still exists, it is chosen the one with most second places, and so on, until there are no more place to use for compare.
Last year another scoring system was proposed but rejected. In it the champion is the one with most wins. If there is tie, champion is the one with most points. If a tie still exists it is proceeded the same way as in the original scoring system, that is comparing number of second, third, forth, and so on, places.
You are given the result of all races during the season and you are to determine the champion according to both scoring systems. It is guaranteed, that both systems will produce unique champion.
The first line contain integer t (1 ≤ t ≤ 20), where t is the number of races. After that all races are described one by one. Every race description start with an integer n (1 ≤ n ≤ 50) on a line of itself, where n is the number of clasified drivers in the given race. After thatn lines follow with the classification for the race, each containing the name of a driver. The names of drivers are given in order from the first to the last place. The name of the driver consists of lowercase and uppercase English letters and has length at most 50 characters. Comparing of names should be case-sensetive.
Your output should contain exactly two line. On the first line is the name of the champion according to the original rule, and on the second line the name of the champion according to the alternative rule.
33HamiltonVettelWebber2WebberVettel2HamiltonVettel
VettelHamilton
27ProstSurteesNakajimaSchumacherButtonDeLaRosaBuemi8AlonsoProstNinoFarinaJimClarkDeLaRosaNakajimaPatreseSurtees
ProstProst
结构体排序
#include <iostream>#include <algorithm>#include <string.h>#include <math.h>#include <stdlib.h>#include <stdio.h>#include <map>#include <string>using namespace std;int n,m;struct Node{ int score; int r[55]; string name;}a[1005];int cmp1(Node a,Node b){ if(a.score==b.score) { for(int i=1;i<50;i++) { if(a.r[i]==b.r[i]) continue; return a.r[i]>b.r[i]; } } return a.score>b.score;}int cmp2(Node a,Node b){ if(a.r[1]==b.r[1]) { if(a.score==b.score) { for(int i=2;i<50;i++) { if(a.r[i]==b.r[i]) continue; return a.r[i]>b.r[i]; } } return a.score>b.score; } return a.r[1]>b.r[1];}map<string,int> mm;int num[55]={0,25,18,15,12,10,8,6,4,2,1};int main(){ scanf("%d",&n); string s; int cnt=0; for(int i=1;i<=n;i++) { scanf("%d",&m); for(int j=1;j<=m;j++) { cin>>s; if(!mm.count(s)) mm[s]=cnt++; a[mm[s]].score+=num[j]; a[mm[s]].r[j]++; a[mm[s]].name=s; } } sort(a,a+cnt,cmp1); cout<<a[0].name<<endl; sort(a,a+cnt,cmp2); cout<<a[0].name<<endl; return 0;}
- CodeForces 24B F1 Champions(排序)
- CodeForces 24B-F1 Champions
- CodeForces 24B F1 Champions (简单题)
- CF#24-B - F1 Champions
- codeforces 234E Champions' League
- CodeForces Round #145(234E) - Champions' League
- codeforces#321 B(排序+二分)
- CodeForces 686B 冒泡排序
- Codeforces 383B Volcanoes(排序+检索)
- Codeforces 412B Network Configuration (排序)
- Codeforces 101B Buses 排序+树状数组
- codeforces 479B. Towers C - Exams【排序】
- Codeforces 3B.Lorry(贪心,排序)
- CodeForces 151 B 结构体排序。
- CodeForces 151 B 结构体排序。
- 【CodeForces 651B】Beautiful Paintings 排序+贪心
- Codeforces 383B Volcanoes(排序+检索)
- 【CodeForces 572B】Order Book(排序)
- CodeForces 24A Ring road(dfs)
- 2016SDAU课程练习三1006
- 使用jQuery实现input的灰色提示信息
- 百度地图开发,实现鼠标悬浮事件以及点击事件
- 撸个服务端出来系列(一)
- CodeForces 24B F1 Champions(排序)
- 大话设计模式-第03章 拍摄UFO-单一职责原则
- 如何找出数组中只出现一次的数字
- TCP/UDP简单介绍及JavaSocket的使用
- RMQ问题
- js中控制图片的循环播放
- NIM游戏
- 代理服务器
- 前端资源汇集