L2-030 冰島人 (25分)
2018年世界盃,冰島隊因1:1平了強大的阿根廷隊而一戰成名。好事者發現冰島人的名字後面似乎都有個“鬆”(son),於是有網友科普如下:
冰島人沿用的是維京人古老的父系姓制,孩子的姓等於父親的名加字尾,如果是兒子就加 sson,女兒則加 sdottir。因為冰島人口較少,為避免近親繁衍,本地人交往前先用個 App 查一下兩人祖宗若干代有無聯絡。本題就請你實現這個 App 的功能。
輸入格式:
輸入首先在第一行給出一個正整數 N(1<N≤10
5
),為當地人口數。隨後 N 行,每行給出一個人名,格式為:名 姓(帶性別字尾),兩個字串均由不超過 20 個小寫的英文字母組成。維京人後裔是可以通過姓的字尾判斷其性別的,其他人則是在姓的後面加 m 表示男性、f 表示女性。題目保證給出的每個維京家族的起源人都是男性。
隨後一行給出正整數 M,為查詢數量。隨後 M 行,每行給出一對人名,格式為:名1 姓1 名2 姓2。注意:這裡的姓是不帶字尾的。四個字串均由不超過 20 個小寫的英文字母組成。
題目保證不存在兩個人是同名的。
輸出格式:
對每一個查詢,根據結果在一行內顯示以下資訊:
若兩人為異性,且五代以內無公共祖先,則輸出 Yes;
若兩人為異性,但五代以內(不包括第五代)有公共祖先,則輸出 No;
若兩人為同性,則輸出 Whatever;
若有一人不在名單內,則輸出 NA。
所謂“五代以內無公共祖先”是指兩人的公共祖先(如果存在的話)必須比任何一方的曾祖父輩分高。
輸入樣例:
15
chris smithm
adam smithm
bob adamsson
jack chrissson
bill chrissson
mike jacksson
steve billsson
tim mikesson
april mikesdottir
eric stevesson
tracy timsdottir
james ericsson
patrick jacksson
robin patricksson
will robinsson
6
tracy tim james eric
will robin tracy tim
april mike steve bill
bob adam eric steve
tracy tim tracy tim
x man april mikes
輸出樣例:
Yes
No
No
Whatever
Whatever
NA
#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct Person{
char sex;
string father;
};
map<string,Person>people;
int judge(string a,string b)
{
int i=1,j;
for(string A=a;!A.empty();A=people[A].father,i++)
{
j=1;
for(string B=b;!B.empty();B=people[B].father,j++)
{
if(i>=5&&j>=5) return 1;
if(A==B)//&&(i<5||j<5))
return 0;
}
}
}
int main()
{
ios::sync_with_stdio(false);
int n,m;
string str,a,b;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a>>b;
if(b[b.length()-1]=='n')
people[a]={'m',b.substr(0,b.size()-4)};
else if(b[b.length()-1]=='r')
people[a]={'f',b.substr(0,b.size()-7)};
else people[a].sex=b[b.length()-1];
}
cin>>m;
while(m--)
{
cin>>a>>str>>b>>str;
if(people.find(a)==people.end()||people.find(b)==people.end())
cout<<"NA"<<endl;
else if(people[a].sex==people[b].sex)
cout<<"Whatever"<<endl;
else cout<<(judge(a,b)?"Yes":"No")<<endl;
}
return 0;
}
相關文章
- L2-030 冰島人
- 天梯題集——冰島人(隱藏條件:考慮嫡系)
- 2018世界盃奈及利亞vs冰島誰會贏 奈及利亞vs冰島比分預測
- 冰島國家統計局:2020年第一季度中國赴冰島遊客人數增長6.2%
- 2018世界盃冰島vs克羅埃西亞誰會贏 冰島vs克羅埃西亞比分預測
- 冰島普洱茶供應價格-志強茶莊
- 2020年Q1冰島最暢銷汽車品牌是特斯拉
- 冰島普洱茶-泉州市五久貿易有限公司茶莊
- 冰島史上最大網路攻擊行動:黑客冒充警方欺詐民眾黑客
- 銷售供應冰島普洱茶批發價格-泉州市黃志強茶莊
- 《對馬島之魂》的敵人,其實是韓國人?
- 青島開票-青島開票
- 瑞幸,全是冰塊
- CSS畫冰墩墩~CSS
- 這,就是飛冰物料
- 迷失島
- 小冰負責人李笛:微軟不缺錢,缺對未來的把握微軟
- 綠色場館華熙LIVE“冰菱花”製冰透過驗收
- 秦皇島開票-秦皇島開票
- 青島哪裡有開票-青島開票
- 青島哪裡有開票-青島開票
- 愛讓人走出孤島 | 《光·遇》奇妙之旅:姆明季 正式開啟
- 張巨集江:開源時代如何解決人的思維孤島
- 青島開票
- 關 於 青 島 哪 裡 可 以 開 具 票-青島
- 葫蘆島哪裡有開票-葫蘆島開票
- 菊花茶,鐵皮石斛,墨紅玫瑰花茶,碎銀子普洱茶,冰島普洱茶,鐵觀音,黃旦,毛蟹,鳳凰單叢
- iOS冰與火之歌 – UAF and Kernel PwniOS
- 飛冰(ICE)4 月新動態
- 飛冰 - ICE Design Pro 使用指南
- 《對馬島之魂》用美國人的方式,重新詮釋了日本武士精神
- 第八代小冰年度釋出會召開,開啟小冰智慧生涯的第二幕
- 最大島嶼面積
- 荒島野人 題解
- Game Jam與椰島GAM
- 秦皇島開票
- 如何可以開青島加油發票_青島百度經驗
- 菜刀、冰蠍、蟻劍、哥斯拉Webshell流量特徵Webshell特徵