Submission #1009197

#TimeUsernameProblemLanguageResultExecution timeMemory
1009197bornagSpecial graph (IZhO13_specialg)C++14
0 / 100
2 ms348 KiB
#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); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...