Codeforces Round #346 (Div. 2) B Qualifying Contest

时间:2022-11-10 11:52:26

B. Qualifying Contest

题目链接http://codeforces.com/contest/659/problem/B

Description

Very soon Berland will hold a School Team Programming Olympiad. From each of the m Berland regions a team of two people is invited to participate in the olympiad. The qualifying contest to form teams was held and it was attended by n Berland students. There were at least two schoolboys participating from each of the m regions of Berland. The result of each of the participants of the qualifying competition is an integer score from 0 to 800 inclusive.

The team of each region is formed from two such members of the qualifying competition of the region, that none of them can be replaced by a schoolboy of the same region, not included in the team and who received a greater number of points. There may be a situation where a team of some region can not be formed uniquely, that is, there is more than one school team that meets the properties described above. In this case, the region needs to undertake an additional contest. The two teams in the region are considered to be different if there is at least one schoolboy who is included in one team and is not included in the other team. It is guaranteed that for each region at least two its representatives participated in the qualifying contest.

Your task is, given the results of the qualifying competition, to identify the team from each region, or to announce that in this region its formation requires additional contests.

Input

The first line of the input contains two integers n and m (2 ≤ n ≤ 100 000, 1 ≤ m ≤ 10 000, n ≥ 2m) — the number of participants of the qualifying contest and the number of regions in Berland.

Next n lines contain the description of the participants of the qualifying contest in the following format: Surname (a string of length from 1 to 10 characters and consisting of large and small English letters), region number (integer from 1 to m) and the number of points scored by the participant (integer from 0 to 800, inclusive).

It is guaranteed that all surnames of all the participants are distinct and at least two people participated from each of the m regions. The surnames that only differ in letter cases, should be considered distinct.

Output

Print m lines. On the i-th line print the team of the i-th region — the surnames of the two team members in an arbitrary order, or a single character "?" (without the quotes) if you need to spend further qualifying contests in the region.

Sample Input

5 2

Ivanov 1 763

Andreev 2 800

Petrov 1 595

Sidorov 1 790

Semenov 2 503

Sample Output

Sidorov Ivanov

Andreev Semenov

题意:

给你n个人m只队伍。问能否每对确定得分最高的两个人。能则输出人名,不能则输出“?”。

题解:

只需开m个数组,鉴于太大,可使用vector。再对每个队伍排序。如只有两个人,输出这两个人。如果超过两个人如果第二个人和第三个人得分相同则输出“?”,否则输出前两个人人名。

代码:

#include<bits/stdc++.h>
using namespace std;
struct node
{
char name[15];
int dui;
int fen;
};
bool cmp(node s1,node s2)
{
return s1.fen > s2.fen;
}
vector <node> s[100100];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
node temp;
for (int i = 1; i <= n; i++)
{
scanf("%s %d %d",temp.name,&temp.dui,&temp.fen);
s[temp.dui].push_back(temp);
}
for (int i = 1; i <= m; i++)
{
sort(s[i].begin(),s[i].end(),cmp);
if (s[i].size()==2)
printf("%s %s\n",s[i][0].name,s[i][1].name);
else {
if (s[i][1].fen == s[i][2].fen)
printf("?\n");
else
printf("%s %s\n",s[i][0].name,s[i][1].name);
}
} }

Codeforces Round #346 (Div. 2) B Qualifying Contest的更多相关文章

  1. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; B&period; Qualifying Contest 水题

    B. Qualifying Contest 题目连接: http://www.codeforces.com/contest/659/problem/B Description Very soon Be ...

  2. Codeforces Round &num;346 &lpar;Div&period; 2&rpar;---E&period; New Reform--- 并查集(或连通图)

    Codeforces Round #346 (Div. 2)---E. New Reform E. New Reform time limit per test 1 second memory lim ...

  3. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; B题

    B. Qualifying Contest Very soon Berland will hold a School Team Programming Olympiad. From each of t ...

  4. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; A Round-House

    A. Round House 题目链接http://codeforces.com/contest/659/problem/A Description Vasya lives in a round bu ...

  5. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; A&period; Round House 水题

    A. Round House 题目连接: http://www.codeforces.com/contest/659/problem/A Description Vasya lives in a ro ...

  6. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; D Bicycle Race

    D. Bicycle Race 题目链接http://codeforces.com/contest/659/problem/D Description Maria participates in a ...

  7. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; C Tanya and Toys

    C. Tanya and Toys 题目链接http://codeforces.com/contest/659/problem/C Description In Berland recently a ...

  8. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; G&period; Fence Divercity dp

    G. Fence Divercity 题目连接: http://www.codeforces.com/contest/659/problem/G Description Long ago, Vasil ...

  9. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; F&period; Polycarp and Hay 并查集 bfs

    F. Polycarp and Hay 题目连接: http://www.codeforces.com/contest/659/problem/F Description The farmer Pol ...

随机推荐

  1. Java中instanceof和isInstance区别详解

     一次性搞定instanceof和isInstance,instanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法: obj.instanceof(class) 也就是说这 ...

  2. 分享录制的正则表达式入门、高阶以及使用 &period;NET 实现网络爬虫视频教程

    我发布的「正则表达式入门以及高阶教程」,欢迎学习. 课程简介 正则表达式是软件开发必须掌握的一门语言,掌握后才能很好地理解到它的威力: 课程采用概念和实验操作 4/6 分隔,帮助大家理解概念后再使用大 ...

  3. csharp&colon; Domain-Driven Design&lpar;领域驱动设计&rpar;

    http://dddsample.sourceforge.net/ https://github.com/citerus/dddsample-core http://dddsamplenet.code ...

  4. C&num; 私人笔记

    .ADO.NET 连接数据库的模版 string constr = "data source=127.0.0.1\\mysql2008;database=dbtest;integrated ...

  5. 利用if else咱们结婚吧

    class Program    {        static void Main(string[] args)        {            while (true)           ...

  6. JavaScript图片翻转

    <script type="text/javascript"> /** * 注册函数f,当文档加载问成时执行这个函数f * 如果文件已经载入完成,尽快以异步方式执行它 ...

  7. WIN7下PS&sol;2等键盘失灵无法使用的解决办法

    WIN7下PS/2等键盘失灵无法使用的解决办法 装了win7,无意中一天开机,发现键盘不能用了.开始以为键盘坏了,重启看机,一看能进bios,各键正常.然后再重启,进系统,看设备管理器,发现键盘为黄色 ...

  8. 2、Libgdx配置你的开发环境(Eclipse,Intellij IDEA,NetBeans)

    Libgdx 项目使用 Gradle管理依赖,构建过程和IDE整合.这使得你可以使用你喜欢的开发环境开发你的应用.不要提交跟IDE的特定文件到你的源码控制系统中. 配置Eclipse 要想通过Ecli ...

  9. 【HDU4751】Divide Groups

    题目大意:给定 N 个点和一些有向边,求是否能够将这个有向图的点分成两个集合,使得同一个集合内的任意两个点都有双向边联通. 题解:反向思考,对于没有双向边的两个点一定不能在同一个集合中.因此,构建一个 ...

  10. 爬虫保存cookies时重要的两个参数(ignore&lowbar;discard和ignore&lowbar;expires)的作用

    两个参数的作用: 官方的解释: ignore_discard: save even cookies set to be discarded. ignore_expires: save even coo ...