Untitled
unknown
plain_text
2 years ago
1.1 kB
8
Indexable
#include <iostream>
using namespace std;
int Map[1001][1001];
int Elec[1001];
int Queue[100000];
int N,H,M;
int t,r;
int Max,ID;
void Init()
{
for (int i = 0; i < N; i++)
{
Elec[i]=99999;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
Map[i][j]=0;
}
}
}
void Push(int i){
Queue[t]=i;
t++;
}
void BFS()
{
while(t!=r)
{
int i = Queue[r];
for (int j = 0; j < N; j++)
{
if(Map[i][j]==1 && Elec[j]>Elec[i]+1)
{
Elec[j]= Elec[i]+1;
Push(j);
}
}
r++;
}
}
int main()
{
//freopen("Text.txt","r",stdin);
int T;
cin >> T;
for (int i = 0; i < T; i++)
{
cin >> N >> M >> H;
int x,y;
Init();
t=r=0;
for (int i = 0; i < M; i++)
{
cin >> x;
Push(x);
Elec[x] = 0;
}
for (int i = 0; i < H; i++)
{
cin >> x >> y;
Map[x][y]=Map[y][x]=1;
}
BFS();
Max=0;
for(int i=0;i<N;i++)
{
if(Max<Elec[i])
{
Max=Elec[i];
ID=i;
}
}
cout << ID << endl;
}
return 0;
}Editor is loading...
Leave a Comment