2009年第5题
题目地址:http://jobdu.sinaapp.com/problem.php?pid=1035
C语言源码:
#include<stdio.h>int main(){int n,m,i,T[26],a,b,num,j,k;char s[4];scanf("%d %d",&n,&m);while(n||m){for(i=0;i<26;i++)T[i]=-1;for(i=0;i<n;i++){scanf("%s",s);if(s[1]>='A'&&s[1]<='Z')T[s[1]-'A']=s[0]-'A';if(s[2]>='A'&&s[2]<='Z')T[s[2]-'A']=s[0]-'A';}for(k=0;k<m;k++){scanf("%s",s);a=s[0]-'A';b=s[1]-'A';num=0;i=a;while(i!=b&&T[i]!=-1){i=T[i];num++;}if(i==b){if(num==1)printf("parent\n");elseif(num==2)printf("grandparent\n");else{for(j=1;j<=num-2;j++)printf("great-");printf("grandparent\n");}}else{i=b;while(i!=a&&T[i]!=-1){i=T[i];num++;}if(i==a){if(num==1)printf("child\n");elseif(num==2)printf("grandchild\n");else{for(j=1;j<=num-2;j++)printf("great-");printf("grandchild\n");}}elseprintf("-\n");}}scanf("%d %d",&n,&m);}}