Dada la antigüedad en el servicio de N empleados en una empresa, se requiere generar el número de empleados en cada antigüedad en orden creciente de antigüedad.
Formato de entrada:
Introduzca primero un número entero positivo N (≤10 5), que es el número total de empleados, luego proporcione N números enteros, es decir, el tiempo de servicio de cada empleado, en el rango [0, 50].
Formato de
salida : muestra el número de empleados de cada edad de servicio en orden creciente de edad de servicio, el formato es: "edad de servicio: número de personas". Cada artículo ocupa una línea. Si el número de personas es 0, el artículo no se emite.
Muestra de entrada:
8
10 2 0 5 7 2 5 2
Salida de muestra:
0: 1
2: 3
5: 2
7: 1
10: 1
Esta pregunta se emite en orden ascendente de servicio, directamente en el mapa, las claves no se repiten y los valores de las claves en el mapa se ordenan de pequeños a grandes, y la clasificación se realiza directamente. Sin embargo, uso C ++ para escribir este ejercicio de estructura de datos. El examen final es muy bueno. . . .
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
map<int,int> m;
int n,age;
cin >> n;
for(int i = 0;i<n;i++){
cin >> age;
m[age]++;
}
for(auto it = m.begin();it!=m.end();it++){
if(it->second>0){
cout << it->first << ":" << it->second << endl;
}
}
return 0;
}