Untitled

mail@pastecode.io avatar
unknown
plain_text
15 days ago
1.1 kB
3
Indexable
Never
#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;
}
Leave a Comment