3023820_ac_638ms_2976k.cpp

来自「pku acm 1002的源代码」· C++ 代码 · 共 49 行

CPP
49
字号
#include <iostream>
#include <map>
using namespace std;
int conversion(char*);
int GOOD[35]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,-1,7,7,8,8,8,9,9,9};
int main()
{
	map<int,int> STORE;
	map<int,int>::iterator Iter;
	int i=0,NUM,temp;
	char buf[100];
	cin>>NUM;
	while(i!=NUM)
	{
		scanf("%s",buf);
		temp=conversion(buf);
		STORE[temp]++;
		i++;
	}
	int flag=0;
	for(Iter=STORE.begin();Iter!=STORE.end();Iter++)
	{
		if(Iter->second>1)
		{
			printf("%.3d-%.4d %d\n",Iter->first/10000,Iter->first%10000,Iter->second);
			flag=1;
		}
	}
	if(!flag)
		printf("No duplicates.\n");
	return 0;
}

int conversion(char *buf)
{
	int result=0;
	for(int i=0;buf[i]!=0;i++)
	{
		if(isdigit(buf[i]))
		{
			result=result*10+(buf[i]-48);
		}
		else if(isupper(buf[i]))
		{
			result=result*10+GOOD[buf[i]-'A'];
		}
	}
	return result;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?