PTA 冰岛人

#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<cmath>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include <string>
#define EPS 1e-6
#define zero 1e-3
#define INF 0x3f3f3f3f
using namespace std;
typedef struct p people;
struct p
{
	char sex;
	string f;
};
int n;
string s1,s2,temp;
map<string,p> s;
map<string,p>::iterator t1;
map<string,p>::iterator t2;
bool judge()
{
	int i=1,j=1;
	for(string A=s1;!A.empty();A=s[A].f,i++)
	{
		cout<<"s1:"<<A<<endl;
		j=1;
		for(string B=s2;!B.empty();B=s[B].f,j++)
		{
			cout<<"s2:"<<B<<endl;
			if(i>=5&&j>=5)
				break;
			if(A==B&&(i<5||j<5))
				return 0;
		}
	}
	return 1;
}
int main()
{
	while(cin>>n)
	{
		s.clear();
		for(int i=0;i<n;i++)
		{
			cin>>s1>>s2;
			if(s2.substr(s2.size()-1,s2.size())=="n")
			{
				people a;
				a.sex='m';
				a.f=s2.substr(0,s2.size()-4);
				s.insert(pair<string,p>(s1,a));
			}
			else if(s2.substr(s2.size()-1,s2.size())=="r")
			{
				people a;
				a.sex='f';
				a.f=s2.substr(0,s2.size()-7);
				s.insert(pair<string,p>(s1,a));		
			}
			else
			{
				people a;
				if(s2.substr(s2.size()-1,s2.size())=="m")
					a.sex='m';
				else
					a.sex='f';
				s.insert(pair<string,p>(s1,a));	
			}
		}
		int m;
		cin>>m;
		for(int i=0;i<m;i++)
		{
			cin>>s1>>temp>>s2>>temp;
			if(s.find(s1)==s.end()||s.find(s2)==s.end())
			{
				cout<<"NA"<<endl; 
				continue;
			}
			if(s.find(s1)->second.sex==s.find(s2)->second.sex)
			{
				cout<<"Whatever"<<endl;
				continue;
			}
			else
			{
				if(judge())
					cout<<"Yes"<<endl;
				else
					cout<<"No"<<endl;
			}
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值