#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;
}
PTA 冰岛人
最新推荐文章于 2024-08-02 16:31:03 发布