题意:

  有n(n≤50000)支队伍参加了两场比赛,分别有两个排名。现在要求输出总排名,如果对任意m,在两个排名的前m个队伍都相同,那么在总排名前m个队伍就是这些队伍。其它情况按字典序排。


Solution:

  简单题。

  先map定位每个队伍在第一个排名中的位置。从第二个排名的第一个开始,找到最小满足条件的m,对这m个队伍按照字典序进行排序。然后继续找新的m(不包括排完序的队伍)直到所有队伍排完。

#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
using namespace std;
map<string, int> pos;
vector<string> Rank;
int n;
int main()
{
ios::sync_with_stdio ( );
cin >> n;
string name;
for ( int i = ; i <= n; ++i ) {
cin >> name;
pos[name] = i;
}
int r = , l = ;
for ( int i = ; i <= n; ++i ) {
cin >> name;
Rank.push_back ( name );
r = max ( r, pos[name] );
if ( i == r ) {
sort ( Rank.begin() + l, Rank.begin() + r );
l = r;
}
}
for ( int i = ; i < n; ++i ) {
cout << Rank[i] << "\n";
}
}

最新文章

  1. 通过几个Hello World感受.NET Core全新的开发体验
  2. c# 程序设计教程笔记
  3. sybase 收集常用sql语句
  4. Java8-Function使用及Groovy闭包的代码示例
  5. 异步httpCilent框架post提交到服务器
  6. [转]SecureCRT使用配置详细图文教程
  7. jquery plugins —— datatables ajax post更新数据
  8. Delphi ControlCount和ComponentCount的区别
  9. ssh链接云主机的一些笔记
  10. sql获取第n条数据
  11. Burp Suite抓包、截包和改包
  12. Indenting source code
  13. java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数
  14. DAC杂谈二 ——ADC和DAC常用技术术语
  15. 《pyhton语言程序设计》_第一章笔记
  16. [git] 文件操作
  17. 第3章 Git使用人门
  18. 一本通1601【例 5】Banknotes
  19. DDL触发器(用来控制用户的DDL行为)
  20. vue 关于npm run build 的小问题

热门文章

  1. HW5.20
  2. Sublime Text3使用及常用插件
  3. background-position也许你没考虑到
  4. Java通过JDBC连接Oracle之后查询结果和在sqlplus查询结果不一样
  5. 微信.NET 微信开发 自己主动内容回复 ASP.NET C#代码
  6. mysql数据库表中判断字段是否存在,如果不存在则创建该字段
  7. android 98 MediaPlayer+SurfaceView播放视频
  8. RHCA学习笔记:RH442-Unit9内核定时与进程延时
  9. 【转】搭建Mac OS X下cocos2d-x的Android开发环境
  10. find命令基本使用一览