답안 #1009241

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1009241 2024-06-27T10:27:40 Z bornag 특수한 그래프 (IZhO13_specialg) C++14
0 / 100
1000 ms 1220 KB
#include <iostream>
using namespace std;
 
const int maxn = 1e5;
 
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
 
int vis[maxn];
 
int n, m;
int graph[maxn];
int dis[maxn];
 
int dfs(int nd, int e, int d, int indx){
	vis[nd] = indx;
	if(nd == e) return d;
	
	if(graph[nd] == -1) return -1;
	if(vis[graph[nd]] != indx) return dfs(graph[nd], e, d+1, indx);
	else return -1;
}
 
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;
			
			if(graph[a-1] == -1) {
				cout << -1 << '\n';
				continue;
			}
			
			cout << dfs(a-1, b-1, 0, m) << '\n';
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 508 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 15 ms 512 KB Output is correct
7 Correct 17 ms 520 KB Output is correct
8 Correct 18 ms 348 KB Output is correct
9 Correct 15 ms 348 KB Output is correct
10 Correct 19 ms 520 KB Output is correct
11 Execution timed out 1078 ms 1220 KB Time limit exceeded
12 Halted 0 ms 0 KB -