A Qualifiers Ranking Rules---The 2023 ICPC Asia Regionals Online Contest (1)

The following is the current ranking rules for the ICPC Asia EC Online Qualifiers, and there will be two online contests.

  1. In each contest, only the rank of the top-ranked team from each university will be taken as the score of that university;
  2. In each contest, participating universities will be ranked according to their scores;
  3. The two rankings of universities are combined using the merge sorting method. For any two universities that obtain the same ranking in different contests, the university that received this ranking in the first contest will be ranked first.
  4. Delete duplicate universities and obtain the final ranking of all participating universities (only the highest rankings for each university are retained).

Now assuming that there are n teams in the first contest and m teams in the second contest.

For each contest, given the ranking of each team and the university to which it belongs, please output the final ranking of all participating universities according to the above rules.

You can better understand this process through the sample.

Input

The first line contains two integers n,m (1≤n,m≤1e4) , representing the number of teams participating in the first contest and the second contest.

Then following n lines, the i-th line contains a string si​ (1≤∣si​∣≤10) only consisting of uppercase letters, representing the abbreviation of the university to which the i-th ranked team in the first contest belongs.

Then following m lines, the i-th line contains a string ti​ (1≤∣ti​∣≤10) only consisting of uppercase letters, representing the abbreviation of the university to which the i-th ranked team in the second contest belongs.

It's guaranteed that each university has only one abbreviation.

Output

Output several lines, the i-th line contains a string, representing the abbreviation of the i-th ranked university in the final ranking.

You should ensure that the abbreviation of any participating universities appears exactly once.

Input Sample

复制代码
14 10
THU
THU
THU
THU
XDU
THU
ZJU
THU
ZJU
THU
NJU
WHU
THU
HEU
PKU
THU
PKU
PKU
ZJU
NUPT
THU
NJU
CSU
ZJU

Output Sample

复制代码
THU
PKU
XDU
ZJU
NJU
NUPT
WHU
HEU
CSU

Hint

Sample is part of the results in 2022 ICPC Asia EC Online Contest.

In the first contest, the ranking of the universities is:

复制代码
THU
XDU
ZJU
NJU
WHU
HEU

In the second contest, the ranking of the universities is:

复制代码
PKU
THU
ZJU
NUPT
NJU
CSU

By combining these two rankings according to the rules, the rankings of the universities is:

复制代码
THU
PKU
XDU
THU
ZJU
ZJU
NJU
NUPT
WHU
NJU
HEU
CSU

By deleting duplicate universities we will get the final ranking.

解析:

首先对于两个榜单,统计并且去重。

然后对于榜单a和b进行遍历,并且记录是否重复。

注意,有的学校可能没参加某一场,所以可能导致两场榜单去重之后长度不一样。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int n,m;
string s;
vector<string>a,b,res;
set<string>p;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		cin>>s;
		if(p.count(s)==0){
			p.insert(s);
			a.push_back(s);
		}
	}
	p.clear();
	for(int i=1;i<=m;i++){
		cin>>s;
		if(p.count(s)==0){
			p.insert(s);
			b.push_back(s);
		}
	}
	p.clear();
	for(int i=0;i<min(a.size(),b.size());i++){
		if(a[i]==b[i]){
			p.insert(a[i]);
			cout<<a[i]<<endl;
		}
		else{
			if(p.count(a[i])==0){
				cout<<a[i]<<endl;
				p.insert(a[i]);
			}
			if(p.count(b[i])==0){
				cout<<b[i]<<endl;
				p.insert(b[i]);
			}
		}
	}
	for(int i=min(a.size(),b.size());i<max(a.size(),b.size());i++){
		if(a.size()>b.size()){
			if(p.count(a[i])==0){
				p.insert(a[i]);
				cout<<a[i]<<endl;
			}
		}
		else{
			if(p.count(b[i])==0){
				p.insert(b[i]);
				cout<<b[i]<<endl;
			}
		}
	}
	return 0;
}
相关推荐
郭涤生5 小时前
布隆过滤器
c++
喵了meme5 小时前
C语言实战4
c语言·开发语言
码界奇点5 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
智者知已应修善业5 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
9ilk5 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
地平线开发者6 小时前
PTQ 量化数值范围与优化
算法·自动驾驶
sali-tec6 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
测试人社区-小明6 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
罗西的思考7 小时前
【Agent】MemOS 源码笔记---(5)---记忆分类
人工智能·深度学习·算法
生骨大头菜7 小时前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务