Submission #1009241

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