题意
给出一位校友的身份证号
给出前来参加校庆的所有人士的信息
在第一行输出参加校庆的校友的人数。
然后在第二行输出最年长的校友的身份证号
如果没有校友来,则在第二行输出最年长的来宾的身份证号。题目保证这样的校友或来宾必是唯一的。
Code
#include <iostream>
#include <algorithm>
#include <string>
#include <unordered_set>
using namespace std;
const int N = 1e5 + 10;
string s[N];
int n, m;
unordered_set<string> st;
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
string t;
cin >> t;
st.insert(t);
}
cin >> m;
int res = 0;
for (int i = 1; i <= m; i++)
{
cin >> s[i];
if (st.count(s[i]))
{
res++;
}
}
sort(s + 1, s + m + 1, [&](string a, string b){
string a1 = a.substr(6, 8);
string b1 = b.substr(6, 8);
return a1 < b1;
});
if (res == 0)
{
cout << res << endl;
cout << s[1] << endl;
}
else
{
cout << res << endl;
for (int i = 1; i <= m; i++)
{
if (st.count(s[i]))
{
cout << s[i] << endl;
break;
}
}
}
return 0;
}