P2037 电话号码
wa了第三个点(好像是190-2841 100000出问题了 骗的测试点
#include<bits/stdc++.h>
using namespace std;
int T;
string s, tp;
inline int read() {
int f = 1, x = 0;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') {
f = -1;
}
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = (x << 3) + (x << 1) + (ch - 48);
ch = getchar();
}
return ~f ? x : -x;
}
char mapping(char ch) {
if (ch == 'A' || ch == 'B' || ch == 'C') {
return '2';
}
if (ch == 'D' || ch == 'E' || ch == 'F') {
return '3';
}
if (ch == 'G' || ch == 'H' || ch == 'I') {
return '4';
}
if (ch == 'J' || ch == 'K' || ch == 'L') {
return '5';
}
if (ch == 'M' || ch == 'N' || ch == 'O') {
return '6';
}
if (ch == 'P' || ch == 'R' || ch == 'S') {
return '7';
}
if (ch == 'T' || ch == 'U' || ch == 'V') {
return '8';
}
if (ch == 'W' || ch == 'X' || ch == 'Y') {
return '9';
}
return ch;
}
inline string spread() {
char ch = getchar();
string temp;
while ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || ch == '-') {
if (ch == '-') {
ch = getchar();
continue;
}
temp += mapping(ch);
ch = getchar();
}
return temp;
}
int main() {
// T = read();
// while (T--) {
int n = read();
bool flag = false;
map<string, int> m;
// map<string, int> ans;
while (n--) {
s = spread();
m[s]++;
}
for (auto i : m) {
if (i.second > 1) {
tp = i.first;
putchar(tp[0]), putchar(tp[1]), putchar(tp[2]);
putchar('-');
putchar(tp[3]), putchar(tp[4]), putchar(tp[5]), putchar(tp[6]);
putchar(32);
printf("%d\n", i.second);
flag = true;
}
}
if (!flag) {
printf("No duplicates.\n");
}
return 0;
// }
}