博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题目1035:找出直系亲属
阅读量:4542 次
发布时间:2019-06-08

本文共 1771 字,大约阅读时间需要 5 分钟。

题目描述:
    如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparent,C是A,B的great-grandchild,之后再多一辈,则在关系上加一个great-。
输入:
    输入包含多组测试用例,每组用例首先包含2个整数n(0<=n<=26)和m(0<m<50), 分别表示有n个亲属关系和m个问题, 然后接下来是n行的形式如ABC的字符串,表示A的父母亲分别是B和C,如果A的父母亲信息不全,则用-代替,例如A-C,再然后是m行形式如FA的字符串,表示询问F和A的关系。

    当n和m为0时结束输入。
输出:
    如果询问的2个人是直系亲属,请按题目描述输出2者的关系,如果没有直系关系,请输出-。

    具体含义和输出格式参见样例.
样例输入:
3 2ABCCDEEFGFABE0 0
样例输出:
great-grandparent-
1 #include 
//1035 2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 #include
20 21 using namespace std;22 23 map
mp;24 25 int find(char from, char to){26 int sum = 0;27 char cur = from;28 while(cur != to && mp.count(cur) > 0){29 cur = mp[cur];30 sum++;31 }32 if(cur != to) return -1;33 return sum;34 }35 36 int main(){37 int n, m, i, sum1, sum2;38 string s;39 40 while(cin >> n >> m, m+n){41 mp.clear();42 for(i = 0; i < n; i++){43 cin >> s;44 mp[s[1]] = s[0];45 mp[s[2]] = s[0];46 }47 for(i = 0; i < m; i++){48 cin >> s;49 sum1 = find(s[0], s[1]);50 sum2 = find(s[1], s[0]);51 if(sum1 == -1 && sum2 == -1)52 cout << "-" << endl;53 else if(sum1 > 0){54 if(sum1 == 1) cout << "parent" << endl;55 else {56 while(sum1 > 2){57 cout << "great-";58 sum1--;59 }60 cout << "grandparent" << endl;61 }62 }else{63 if(sum2 == 1) cout << "child" << endl;64 else {65 while(sum2 > 2){66 cout << "great-";67 sum2--;68 }69 cout << "grandchild" << endl;70 }71 }72 }73 }74 return 0;75 }

 

 

转载于:https://www.cnblogs.com/chchche/p/3466049.html

你可能感兴趣的文章
PAT甲级——A1047 Student List for Course
查看>>
PAT甲级——A1054 The Dominant Color
查看>>
PAT甲级——A1075 PAT Judge
查看>>
PAT甲级——A1056 Mice and Rice
查看>>
PAT甲级——A1080 Graduate Admission
查看>>
PAT甲级——A1060 Are They Equal
查看>>
程序编译
查看>>
Python监听键盘和鼠标事件
查看>>
#141 Linked list cycle
查看>>
Asp.Net Mvc项目添加WebApi
查看>>
三级联动
查看>>
(Delphi)第一个Windows 32 API的窗口程序
查看>>
在Ubuntu16.04里面安装Gogland!
查看>>
ClamAV学习【7】——病毒库文件格式学习
查看>>
[LeetCode] Reverse Nodes in k-Group
查看>>
[LeetCode] Search in Rotated Sorted Array II
查看>>
[STL] lower_bound和upper_bound
查看>>
表单属性enctype="multipart/form-data"
查看>>
数值分析清考给弄纠结了
查看>>
转:GestureDetector: GestureDetector 基本使用
查看>>