답안 #1009197

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1009197 2024-06-27T09:56:45 Z bornag 특수한 그래프 (IZhO13_specialg) C++14
0 / 100
2 ms 348 KB
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5;

int n, m;
int graph[maxn];
int dis[maxn];

int bfs(int s, int e){
	for(int i = 0; i < n; i++)
		dis[i] = -1;
		
	queue<pair<int, int>> q;
	q.push({s, 0});
	
	while(!q.empty()){
		int node = q.front().first;
		int d = q.front().second;
		
		q.pop();
		
		if(dis[node] != -1) continue;
		dis[node] = d;
		
		if(graph[node] != -1 && dis[graph[node]] == -1) q.push({graph[node], d+1});
	}
	return dis[e];
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	cin >> n;
	
	for(int i = 0; i < n; i++){
		cin >> graph[i]; graph[i]--;
	}
	
	cin >> m;
	
	while(m--){
		int typ; cin >> typ;
		
		if(typ == 1){
			int x; cin >> x;
			graph[x-1] = -1;
		} else {
			int a, b; cin >> a >> b;
			cout << bfs(a-1, b-1);
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -