记录编号 283541 评测结果 AAAAAAAAAA
题目名称 [Youdao2010] 有道搜索框 最终得分 100
用户昵称 Gravatar安呐一条小咸鱼。 是否通过 通过
代码语言 C++ 运行时间 0.087 s
提交时间 2016-07-14 21:04:18 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
struct Trie
{
	bool judge;
	Trie* next[55];
	Trie()
	{
		judge=false;
		for(int i=0;i<26;i++)
		{
			next[i]=NULL;
		}
	}
};
int ans=0,n,help,cnt;
char head[100];
void dfs(Trie *p,int pos)
{
	if(cnt==8)return;
	if(p->judge)head[pos]='\0',printf("%s ",head+help),help=0,cnt++;
	for(int i=0; i<26; ++i)
		if(p->next[i]!=NULL)head[pos]=i+'a',dfs(p->next[i], pos+1);
}
void insert(Trie *p)
{
	int k;
	for(int i=0;head[i];i++)
	{
		k=head[i]-'a';
		if(p->next[k]==NULL)p->next[k]=new Trie();
		p=p->next[k];
	}
	p->judge=true;
}
void query(Trie *p)
{
	int k;
	for(int i=0;head[i];i++)
	{
		k=head[i]-'a';
		if(p->next[k]==NULL)return;
		p=p->next[k];
	}
	help=strlen(head);
	cnt=0;
	dfs(p,strlen(head));
}
Trie *root=new Trie(); 
int main()
{
	freopen("youdao.in","r",stdin);
	freopen("youdao.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		scanf("%s",head);
		insert(root);
	}
	int m;
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		scanf("%s",head);printf("%s",head);
		query(root);puts("");
	}
	return 0;
}