제출 #1009239

#제출 시각아이디문제언어결과실행 시간메모리
1009239lrancicSpecial graph (IZhO13_specialg)C++17
0 / 100
1014 ms5648 KiB
#include <iostream>
#include <vector>
#include <unordered_set>

int path(std::vector<int> &vec) {
	int x, y, c = 0; std::cin >> x >> y;
	std::unordered_set<int> visited;

	while (x != y) {
		x = vec[x];

		if (visited.find(x) != visited.end() || x == -1) return -1;
		visited.insert(x);

		c++;
	}

	return c;
}

int main() {
	std::ios_base::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);

	int n; std::cin >> n;
	std::vector<int> vec(n+1); for (int i = 1; i <= n; i++) std::cin >> vec[i];

	int m; std::cin >> m;
	for (int i = 0; i < m; i++) {
		int act; std::cin >> act;

		if (act == 1) {
			int x; std::cin >> x;
			vec[x] = -1;
			continue;
		}

		std::cout << path(vec) << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...