首页 > 试题广场 >

身份证

[编程题]身份证
  • 热度指数:858 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

星球的身份证是一个位的字符串。每位只包含''~''。上面包含了个人信息。并且根据个人的身份证可以知道个人的相似度。相似度:个人身份证的最长公共前缀的长度。假如的相似度为。那么A和B的身份证的前面位是相同的,并且第位一定不同。没有两个人的身份证是完全相同的。现在有一个身份证库,保存有个人的身份证帐号。

个询问。每个询问给出一个人的身份证,询问身份证库的人和这个人最大的相似度,并且询问身份证库有多少个人和他的相似度等于这个最大相似度。

输入描述:

一行:

行:每行一个长度为位的字符串(身份证库里的身份证,保证没有相同的身份证)(每位只包含''~'')

行:每行一个长度为位的字符串 (代表每个询问)



输出描述:
对于每个询问:输出身份证库的人和这个人最大的相似度,并且输出身份证库有多少个人和他的相似度等于这个最大相似度。(两个整数,用空格隔开)
示例1

输入

3 2
333333333333333333
111111122222222222
111111133333333333
111111111000000000
000000000000000000

输出

7 2
0 3

说明

111111111000000000和111111122222222222,111111133333333333相似度都是7,并且7是最大的相似度。
000000000000000000和身份证库的人相似度都为0。并且0是最大的相似度。

这道题你会答吗?花几分钟告诉大家答案吧!