1100. Celebración escolar (25 puntos)

En 2019, la Universidad de Zhejiang celebrará su 122.º aniversario. Para prepararse para la celebración escolar, la asociación de exalumnos recopiló los números de identificación de todos los exalumnos. Ahora necesito que escribas un programa para contar cuántos ex alumnos han venido en función de los números de identificación de todas las personas que asistieron a la celebración escolar.

Formato de entrada:

Ingrese un número entero positivo N que no exceda 105 en la primera línea, seguido de N líneas, y cada línea proporciona el número de identificación de un ex alumno (una cadena de 18 dígitos compuesta por números y letras mayúsculas X). El título asegura que el número de identificación no se repite.

Luego proporcione la información de todas las personas que asistieron a la celebración escolar: primero, un número entero positivo M que no exceda 105, seguido de M líneas, y cada línea da el número de identificación de una persona. El título asegura que el número de identificación no se repite.

Formato de salida:

Primero, indique el número de exalumnos que participaron en la celebración escolar en la primera línea. Luego, escriba el número de identificación del alumno de mayor edad en la segunda línea; tenga en cuenta que los dígitos del 7.º al 14.º de la tarjeta de identificación indican la  yyyymmdd fecha de nacimiento en el formato. Si no viene ningún exalumno, escriba el número de identificación del invitado de mayor edad en la segunda línea. El tema garantiza que dichos alumnos o invitados deben ser únicos.

Muestra de entrada:

5
372928196906118710
610481197806202213
440684198612150417
13072819571002001X
150702193604190912
6
530125197901260019
150702193604190912
220221196701020034
610481197806202213
440684198612150417
370205198709275042

Salida de muestra:

3
150702193604190912
#include<cstdio>
#include<set>
#include<map>
#include<cmath> 
#include<cstring>
#include<iostream>
using namespace std;

int main(){
	map<string,bool> alumnusMap;
	string certNo;
	string minBirth="99999999",tempBirth;
	//最年长的校友身份证号 
	string olderAlumnusCertNo;
	//最年长的来宾身份证号 
	string olderGuestCertNo;
	int N,total=0; 
	cin>>N;
	for(int i=1;i<=N;i++){
		cin>>certNo;
		alumnusMap[certNo]=true;
		tempBirth=certNo.substr(6,8);
		if(minBirth>tempBirth){
			minBirth = tempBirth;	
			olderAlumnusCertNo = certNo;
		}
	}
	cin>>N;
	minBirth="99999999";
	for(int i=1;i<=N;i++){
		cin>>certNo;
		if(alumnusMap[certNo]){
			total++;
		}
		tempBirth=certNo.substr(6,8);
		if(minBirth>tempBirth){
			minBirth = tempBirth;
			olderGuestCertNo = certNo;
		}
	}
	cout<<total<<endl;
	cout<<(total == 0 ? olderGuestCertNo:olderAlumnusCertNo)<<endl;
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_16382227/article/details/124041065
Recomendado
Clasificación