#include<bits/stdc++.h>

int a[100][100];

int n;

char dd[100];

int v[100]={0};

int que[100];

char start;

void f(int head,int w){

 while(head<w){

  for(int i=0;i<n;i++){

   if(v[i]!=1&&a[que[head]][i]!=0){

    v[i]=1;

    que[w++]=i;

   }

  }

  printf("%c",dd[que[head]]);

  head++;

 }

}

int main (){

 int head=0;

 int w=0,t;

    scanf("%d",&n);

    scanf("%s",dd);

    for(int i=0;i<n;i++)

    {

     for(int k=0;k<n;k++){

      scanf("%d",&a[i][k]);

  }

 }

 while(getchar() != '\n');

    scanf("%c", &start);

 for(int i=0;i<n;i++){

  if(dd[i]==start)

  {

   t=i;

   break;

  }

 }

 v[t]=1;

 que[w++]=t;

 f(head,w);

 return 0;

}

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐