有一棵n个节点的完全二叉树,存储着 1~n 的值。
有n(n-1)(n-2)条关于这颗树的信息,每条信息,由一个四元组组成(i,j,k,0/1)(i≠j≠k),均不完全一样。
若四元组最后一个元素为0,表示值为k的这个节点不是值为 i 的结点和值为 j 的结点的最近公共祖先,
若四元组最后一个元素为1,则反之。
基于给出的信息,求根结点的值。
输入一行一个整数n (3 ≤ n ≤ 8)
接下来n(n-1)(n-2)行,每行四个整数表示四元组(i,j,k,0/1)(i≠j≠k)
输出一行一个整数,表示树根节点的值
输入案例3
1 3 2 0
3 1 2 0
3 2 1 0
2 3 1 0
1 2 3 1
2 1 3 1
案例输出4
1 3 2 0
3 1 2 0
3 2 1 0
2 3 1 0
1 4 2 0
4 1 2 0
2 4 1 0
4 2 1 0
2 1 4 0
1 2 4 0
3 4 2 0
4 3 2 0
3 2 4 0
2 3 4 0
3 4 1 0
4 3 1 0
3 1 4 0
1 3 4 0
1 4 3 1
4 1 3 1
2 4 3 1
4 2 3 1
1 2 3 1
2 1 3 1
3
代码3
#includeusing namespace std; int main(){ int t,n; int i,j,k,flag; int a[20]={0}; int b[20]={0}; cin>>t; n=t*(t-1)*(t-2); for(int g=0;g >i>>j>>k>>flag; if(flag==1){ a[k]++;//记下有效性息中的k节点出现次数 b[k]=j; } } int temp=0,id=0,sum=1; int c[t]; for(int g=1;g<=t;g++){ if(a[g]>a[temp]){//去除出现次数最多的 temp=g; } } for(int h=1;h<=t;h++){//查验该节点是否在孩子中出现 if(temp==b[h]){ sum=0; } } if(sum==1){ cout<



