import java.util.Scanner;
import java.io.IOException;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Main
{
private final static boolean DEBUG = false;
private final static int N = 26;
public static void main(String[] args) throws IOException
{
Scanner cin;
int n, m;
String s;
if (DEBUG) {
cin = new Scanner(new BufferedReader(new FileReader(new File("d:\\OJ\\uva_in.txt"))));
} else {
cin = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
}
int[] son = new int[N];
for (int i = 0; i < N; i++) {
son[i] = -1;
}
while (cin.hasNext()) {
n = cin.nextInt();
m = cin.nextInt();
if (n == 0 && m == 0) break;
for (int i = 0; i < n; i++) {
s = cin.next();
if (s.charAt(1) != '-') {
son[s.charAt(1) - 'A'] = s.charAt(0) - 'A';
}
if (s.charAt(2) != '-') {
son[s.charAt(2) - 'A'] = s.charAt(0) - 'A';
}
}
for (int i = 0; i < m; i++) {
s = cin.next();
int a = s.charAt(0) - 'A';
int b = s.charAt(1) - 'A';
boolean flag = false;
int sum = 0;
while (son[a] != -1) {
if (son[a] == b) {
flag = true;
break;
}
a = son[a];
sum++;
}
if (flag == true) {
for (int j = 0; j < sum - 1; j++) {
System.out.print("great-");
}
System.out.println("grandparent");
} else {
a = s.charAt(0) - 'A';
b = s.charAt(1) - 'A';
sum = 0;
while (son[b] != -1) {
if (son[b] == a) {
flag = true;
break;
}
b = son[b];
sum++;
}
if (flag) {
for (int j = 0; j < sum - 1; j++) {
System.out.print("great-");
}
System.out.println("grandchild");
} else {
System.out.println("-");
}
}
}
}
}
}
题目1035:找出直系亲属
最新推荐文章于 2023-11-26 10:30:14 发布