PAT(甲级)2019年春季考试 7-2 Anniversary

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT(甲级)2019年春季考试 7-2 Anniversary相关的知识,希望对你有一定的参考价值。

注意点

1. 记录是不是校友,有两种方法

(1)map<string,int> mp   +   mo[guest] = 1  +  判断mp[comer]

(2)set<string> st   +  st.insert(guest)   +   st.count(comer)

2. 由于只需要输出年龄最大的,并不需要维护一个优先队列

3. 理解清最后的题目含义

来者有校友,输出来的校友当中的最年长者

没有,输出来者当中的最年长者

注:年龄越大,身份中生日字符串越小

4. cin>>需和cin.get()吸收回车搭配食用

AC代码

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<string>
#include<map>
#include<vector>
#include<set>

using namespace std;

const int maxn = 1001;

//set<string> st;
map<string,int> mp;

string guest,oldguest,oldGbirth = "99999999";
string comer,comerbirth,oldcomer,oldCbirth = "99999999";

int main(){
	
	int n,m;
	cin>>n;
	cin.get();

	while(n--){
		cin>>guest;
		cin.get();
//		st.insert(guest);
		mp[guest] = 1;
	}
	
	cin>>m;
	cin.get();
	int ans = 0;
	while(m--){
		cin>>comer;
		cin.get();
		comerbirth = comer.substr(6,8);
		if(mp[comer]){
			ans ++;	
			if(comerbirth<oldGbirth){
				oldGbirth = comerbirth;
				oldguest = comer;
			}
		}
		if(comerbirth<oldCbirth){
			oldCbirth = comerbirth;
			oldcomer = comer;
		}	
	}
	
	
	printf("%d\\n",ans);
	if(ans==0){
		cout<<oldcomer;
	}else{
		cout<<oldguest;
	}
	

	return 0;
}

以上是关于PAT(甲级)2019年春季考试 7-2 Anniversary的主要内容,如果未能解决你的问题,请参考以下文章

PAT(甲级)2020年春季考试 7-2 The Judger

PAT(甲级)2019年春季考试 7-3 Telefraud Detection

PAT(甲级)2019年春季考试 7-4 Structure of a Binary Tree

PAT(甲级)2017年春季考试

PAT(甲级)2019年冬季考试 7-2 Block Reversing

PAT(甲级)2020年春季考试 7-4 Replacement Selection