Submission #1290362

#TimeUsernameProblemLanguageResultExecution timeMemory
1290362cmnikolasInside information (BOI21_servers)C++20
0 / 100
136 ms2108 KiB
#include <iostream>
#include <vector>

void dfs(int start, int goal, bool &found, std::vector<std::vector<int>> &A, std::vector<int> &visited) {
	if(visited[start] || found) return;
	visited[start] = true;

	if(start == goal)
	{
		found = true;
		return;
	}

	for(auto a : A[start])
	{
		if(!visited[a])
			dfs(a, goal, found, A, visited);
	}
}

int main()
{
	int N, K;
	std::cin >> N >> K;
	std::vector<std::vector<int>> A(N + 1);
	char t;

	for(int i = 0; i < N + K - 1; i++)
	{
		std::cin >> t;
		if(t == 'S')
		{
			int a, b;
			std::cin >> a >> b;
			A[a].push_back(b);
			A[b].push_back(a);
		}
		else if (t == 'Q')
		{
			int a, d;
			std::cin >> a >> d;
			std::vector<int> visited(N + 1, false);
			bool found = false;
			dfs(a, d, found, A, visited);
			if(found)
			    std::cout << "yes" << std::endl;
			else
			    std::cout << "no" << std::endl;
		}
	}

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...