题目描述
有一些黑社会社团为了安全,采取单线联系的方式,每个成员只知道自己的上线。现在警察监听某社团的一个低级成员张三的通讯信息,通过“顺藤摸瓜”的方式,对每个成员的上线成员往上跟踪,直到最后一个没有上线的成员,就是社团老大。
现在请你编写代码,根据警察提供的跟踪信息汇总,输出从社团老大到某个成员的单线联系线索。
输入输出格式
输入格式:
第一行两个正整数n和k,n表示成员数,k表示某个成员
第二行n个数字,表示第i个每个成员的上线是谁,老大的上线是自己
数据确保k在1..n之间,也确保有一个成员是老大
输出格式:
从老大开始,一路输出其下线,直到k为止
上线与下线直接通过"->"连接
输入输出样例
输入样例:
5 3
2 2 4 1 4
输出样例:
2->1->4->3
样例说明:3是低级成员k,上线是4,4的上线是1,1的上线是2,2的上线是自己(老大),反着输出就成了2->1->4->3。
测试点
测试点:5个测试点,每个测试点得20分。
测试限制:每个测试点时间限制1s,内存限制128M。
数据范围:1<=n<=10000
废话少说,上代码:
#include
using namespace std;
int a[10005],n,k;
void c(int x){
if(x!=a[x]) c(a[x]);
cout< if(x!=k) cout<<"->"; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; int l=1,r=1000000000; c(k); return 0; } 代码供参考,下次再见!