改了3天了求大佬帮助QwQ
#include<bits/stdc++.h>
using namespace std;
int n,m,s,t,ans;
vector< vector<int> > a;
bool visit[1000005];
int dfs(int now,int bs){
if(visit[now])
return -1;
if(now==t)
return bs;
int ans=-1;
for(int i=0;i<a[now].size();i++){
int tmp=dfs(a[now][i],bs+1);
if(ans==-1)
ans=tmp;
else if(tmp>-1)
ans=min(ans,tmp);
}
return ans;
}
signed main(){
memset(visit,false,sizeof(visit));
cin>>m>>n;
a.resize(m);
for(int i=1,ta,tb;i<=n;i++){
cin>>ta>>tb;
a[ta].push_back(tb);
}
cin>>s>>t;
ans=dfs(s,0)-1;
cout<<(ans==-2?-1:ans);
return 0;
}