# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
89031 | beso123 | Special graph (IZhO13_specialg) | C++14 | 1055 ms | 1560 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int n,p[100001],q,d=1;
int used[100001];
int DFS(int v,int h){
used[v]=d;
queue <int> q;
q.push(v);
int cnt=0;
while(!q.empty()){
v=q.front();
q.pop();
if(v==h){
return cnt;
}
used[v]=d;
if(used[p[v]]!=d && p[v]!=0)
q.push(p[v]);
cnt++;
}
if(used[h]!=d)
return -1;
}
vector <int > v;
int main(){
cin>>n;
for(int k=1;k<=n;k++)
cin>>p[k];
cin>>q;
for(int k=1;k<=q;k++){
int a;
cin>>a;
if(a==1){
int b;
cin>>b;
p[b]=0;
}
if(a==2){
int b,c;
cin>>b>>c;
d++;
v.push_back(DFS(b,c));
}
}
int g=v.size();
for(int k=0;k<g;k++)
cout<<v[k]<<endl;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |