#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int a,b,test,tA,tA_ori,tB;
int generation[30001];
void DFS(){
int ans=0;
tA_ori=tA;
bool generate[30001]={false};
while(1){
if(tA==1){
if(generation[tB]==0)
break;
if(generate[tB]==true)
break;
tB=generation[tB];
ans++;
}
else{
generate[tA]=true;
tA=generation[tA];
}
}
while(tA_ori!=tB){
tA_ori=generation[tA_ori];
ans++;
}
printf("%d %d\n",tB,ans);
}
int main(){
while(cin >> a >> b){
for(int i=1;i<a+1;i++){
while(cin>>test && test!=0)
generation[test]=i;
}
for(int i=0;i<a;i++){
cin >> tA >> tB;
DFS();
}
}
}
在跑測資的時候出現 "冗餘測資"
可是跑sample output 的時候沒問題啊?