You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#define _CRT_SECURE_NO_WARNINGS
|
|
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
|
#include <bits/stdc++.h>
|
|
using namespace std;
|
|
char buf[1 << 20];
|
|
int mp[128];
|
|
int main()
|
|
{
|
|
mp['A'] = mp['B'] = mp['C'] = 2;
|
|
mp['D'] = mp['E'] = mp['F'] = 3;
|
|
mp['G'] = mp['H'] = mp['I'] = 4;
|
|
mp['J'] = mp['K'] = mp['L'] = 5;
|
|
mp['M'] = mp['N'] = mp['O'] = 6;
|
|
mp['P'] = mp['R'] = mp['S'] = 7;
|
|
mp['T'] = mp['U'] = mp['V'] = 8;
|
|
mp['W'] = mp['X'] = mp['Y'] = 9;
|
|
for (int i = 0; i < 10; i++)
|
|
mp[i + '0'] = i;
|
|
int n;
|
|
map<int, int> M;
|
|
while (cin >> n)
|
|
{
|
|
M.clear();
|
|
while (n--)
|
|
{
|
|
scanf("%s", buf);
|
|
int cur = 0;
|
|
for (char *p = buf; *p; p++)
|
|
if (*p != '-')
|
|
cur = cur * 10 + mp[*p];
|
|
M[cur]++;
|
|
}
|
|
bool flag = true;
|
|
for (map<int, int>::iterator ite = M.begin(); ite != M.end(); ++ite)
|
|
if (ite->second > 1)
|
|
printf("%03d-%04d %d\n", ite->first / 10000, ite->first % 10000, ite->second), flag = false;
|
|
if (flag) puts("No duplicates.");
|
|
}
|
|
return 0;
|
|
}
|