Submission #313326

#TimeUsernameProblemLanguageResultExecution timeMemory
313326vitkishloh228Special graph (IZhO13_specialg)C++14
0 / 100
1093 ms1932 KiB
#include<iostream> #include<vector> #include<algorithm> #include<queue> using namespace std; int main() { int n; cin >> n; vector<int> g(n); for (int i = 0; i < n; ++i) { int v1; cin >> v1; g[i] = v1 - 1; } int q; cin >> q; while (q--) { int ind; cin >> ind; if (ind == 1) { int a1; cin >> a1; a1--; g[a1] = -1; } else { int a, b; cin >> a >> b; --a, --b; queue<int> q; vector<int> d(n, 1e9); d[a] = 0; q.push(a); while (!q.empty()) { int v = q.front(); q.pop(); if (g[v] == -1) continue; if (d[g[v]] == 1e9) { d[g[v]] = d[v] + 1; q.push(g[v]); } } if (d[b] < 1e9) { cout << d[b] << '\n'; } else cout << "-1\n"; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...