• 1050: 找出直系亲属


    1050: 找出直系亲属

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 321  解决: 264
    [提交][状态][讨论版]

    题目描述

     如果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 2
    ABC
    CDE
    EFG
    FA
    BE
    0 0

    样例输出

    great-grandparent
    -


    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char cmp(char a,char b){
    return a<b?0:1;
    }
    int main(){
    int m,n;
    while(cin>>m>>n&&(m!=0&&n!=0)){
    string str[m];
    for(int i=0;i<m;i++){
    cin>>str[i];
    }
    char wt[n][2];
    for(int i=0;i<n;i++){
    for(int j=0;j<2;j++){
    cin>>wt[i][j];
    }
    }
    for(int i=0;i<n;i++){
    int temp=0,index=0;
    int j=m-1;
    int count=0;
    if(wt[i][1]<wt[i][0]){index=1;};
    sort(wt[i],wt[i]+2,cmp);
    while(j>=0){
    if(str[j].find(wt[i][0])!=string::npos){
    count++;
    wt[i][0]=str[j][0];
    }
    if(wt[i][1]==str[j][0]) {temp=j;break;}
    j--;
    }
    if(wt[i][1]!=str[temp][0]) count=0;
    if(index==1){
    while(count>2){
    cout<<"great-";
    count--;
    }
    if(count==2)
    cout<<"grandparent"<<endl;
    if(count==1)
    cout<<"parent"<<endl;
    if(count==0)
    cout<<"-"<<endl;
    }
    else{
    while(count>2){
    cout<<"great-";
    count--;
    }
    if(count==2)
    cout<<"grandchild"<<endl;
    if(count==1)
    cout<<"child"<<endl;
    if(count==0)
    cout<<"-"<<endl;
    }
    }
    }
    return 0;
    }

     
  • 相关阅读:
    NIO编程介绍
    伪异步IO
    BIO模型
    Json
    Jquery笔记
    JQuery与Ajax
    jQuery之事件和动画
    JQueryDOM节点操作
    认识Jquery
    javascript之DOM
  • 原文地址:https://www.cnblogs.com/lchzls/p/5847570.html
Copyright © 2020-2023  润新知