标签:des style blog io os ar strong for 2014
| Time Limit: 3000MS | Memory Limit: 65536K | |
| Total Submissions: 32988 | Accepted: 14189 |
Description
Input
Output
Sample Input
dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay
Sample Output
cat eh loops
Hint
Source
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct node{
int flag ;
node *next[27] ;
} *head;
node *getnode()
{
node *p = new node ;
int i ;
for(i = 0 ; i < 27 ; i++)
p->next[i] = NULL ;
p->flag = -1 ;
return p ;
}
void gettree(node *p,char *s,int m)
{
int i , k , l = strlen(s);
for(i = 0 ; i < l ; i++)
{
k = s[i] - 'a' ;
if( p->next[k] == NULL )
p->next[k] = getnode();
p = p->next[k] ;
}
p->flag = m ;
}
int f(node *p,char *s)
{
int i , k , l = strlen(s) ;
for(i = 0 ; i < l ; i++)
{
k = s[i] - 'a' ;
if( p->next[k] == NULL )
return -1 ;
p = p->next[k] ;
}
return p->flag;
}
char s1[110000][12] , s2[110000][12] , s[30] ;
int main()
{
int i = 0 , j , l , k ;
head = getnode();
while(1)
{
gets(s);
if(s[0] == '\0')
break;
sscanf(s,"%s %s", s1[i], s2[i]);
gettree(head,s2[i],i);
i++ ;
}
while(gets(s)!=NULL)
{
if(s[0] == '\0')
break;
k = f(head,s);
if(k == -1)
printf("eh\n");
else
printf("%s\n", s1[k]);
}
return 0;
}
标签:des style blog io os ar strong for 2014
原文地址:http://blog.csdn.net/winddreams/article/details/39377027