Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Set<String> alumniSet = new HashSet<>();
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) {
String id = br.readLine().trim();
alumniSet.add(id);
}
int m = Integer.parseInt(br.readLine());
final int INF = 0x3f3f3f3f;
String oldestAlumni = "";
String oldestGuest = "";
int oldestAlumniDate = INF;
int oldestGuestDate = INF;
int alumniCount = 0;
for (int i = 0; i < m; i++) {
String id = br.readLine().trim();
int date = Integer.parseInt(id.substring(6, 14));
if (alumniSet.contains(id)) {
alumniCount++;
if (date < oldestAlumniDate) {
oldestAlumniDate = date;
oldestAlumni = id;
}
} else {
if (date < oldestGuestDate) {
oldestGuestDate = date;
oldestGuest = id;
}
}
}
System.out.println(alumniCount);
if (alumniCount == 0) {
System.out.println(oldestGuest);
} else {
System.out.println(oldestAlumni);
}
}
}
C++
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_set>
using namespace std;
const int INF = 0x3f3f3f3f;
int n, m;
unordered_set <string> st;
int main() {
cin >> n;
while (n--) {
string id;
cin >> id;
st.insert(id);
}
cin >> m;
string old_alu, old_gst;
int old_alu_date = INF, old_gst_date = INF, cnt = 0;
while (m--) {
string id;
cin >> id;
int date = stoi(id.substr(6, 8));
if (st.count(id)) {
cnt++;
if (date < old_alu_date) {
old_alu_date = date;
old_alu = id;
}
} else {
if (date < old_gst_date) {
old_gst_date = date;
old_gst = id;
}
}
}
cout << cnt << endl;
if (cnt == 0) cout << old_gst << endl;
else cout << old_alu << endl;
return 0;
}