求助 90分(水题,大模拟
  • 板块题目总版
  • 楼主dbjbjbj
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/10/19 18:14
  • 上次更新2023/10/27 06:53:26
查看原帖
求助 90分(水题,大模拟
561319
dbjbjbj楼主2022/10/19 18:14

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;
	//	}
}
2022/10/19 18:14
加载中...