#include <bits/stdc++.h>
using namespace std;
int n, m, u, v;
int tun[1005][1005];
int ans = 0, sum = 0;
int cnt[1005], b[1005];
void dfs(int now){
if(now == v){
sum++;
for(int i=1; i<=n; i++)
if(b[i] == 1) cnt[i]++;
}
for(int i=1; i<=n; i++){
if(tun[now][i] == 1 && b[i] == 0){
b[i] = 1;
dfs(i);
b[i] = 0;
}
}
}
int main(){
memset(tun, 0, sizeof(tun));
cin>>n>>m;
for(int i=1; i<=m; i++){
cin>>u>>v;
tun[u][v] = 1;
tun[v][u] = 1;
}
cin>>u>>v;
dfs(u);
if(sum > 0){
for(int i=1; i<=n; i++){
if(cnt[i] == sum) ans++;
}
cout<<ans;
}
else cout<<-1;
return 0;
}
代码末尾输出ans, 如果不把最后的else注释掉就会WA, 这是什么原理?!?