답안 #1009223

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1009223 2024-06-27T10:09:47 Z bornag 특수한 그래프 (IZhO13_specialg) C++14
0 / 100
1000 ms 928 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 n, m;
int graph[maxn];
int dis[maxn];
bool vis[maxn];

int dfs(int nd, int e, int d){
	vis[nd] = true;
	if(nd == e) return d;
	
	if(graph[nd] == -1) return -1;
	if(!vis[graph[nd]]) return dfs(graph[nd], e, d+1);
	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;
			}
			
			for(int i = 0; i < n; i++)
				vis[i] = false;
			cout << dfs(a-1, b-1, 0) << '\n';
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 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 16 ms 348 KB Output is correct
7 Correct 18 ms 348 KB Output is correct
8 Correct 19 ms 508 KB Output is correct
9 Correct 15 ms 348 KB Output is correct
10 Correct 19 ms 492 KB Output is correct
11 Execution timed out 1060 ms 928 KB Time limit exceeded
12 Halted 0 ms 0 KB -