家人们,父母性别也要记录!!!
没记录父母时:
加上代码里有感叹号的那句(记录父母性别)
就过了
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int f[100005][2];
char a[100005];
map<int,int>p;
int falg;
void fnd(int x,int k){
if(k==5) return ;
int p1=f[x][0], p2=f[x][1];
if(p[p1]&&p1!=-1||p[p2]&&p2!=-1){
falg=1;
// printf("p1=%d p2=%d\n",p1,p2);
return ;
}
else{
p[p1]=1,p[p2]=1;
}
if(p1!=-1) fnd(p1,k+1);
if(p2!=-1) fnd(p2,k+1);
}
int main(){
memset(f,-1,sizeof(f));
int n; cin>>n;
while(n--){
int x,y,z;
char c;
scanf("%d %c%d%d",&x,&c,&y,&z);
a[x]=c;
f[x][0]=y,f[x][1]=z;
a[y]='M',a[z]='F'; //!!!!!!!!!!!!!!就是这句....
}
int m; cin>>m;
while(m--){
int x,y; cin>>x>>y;
if(a[x]==a[y]){ printf("Never Mind\n"); continue;}
p.erase(p.begin(),p.end());
p[x]=1,p[y]=1;
falg=0;
fnd(x,1);
fnd(y,1);
if(falg) printf("No\n");
else printf("Yes\n");
}
return 0;
}