帮忙看看
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int a[10000],a1[100000];
int n;
int ans=0;
int book[21];
void dfs(int pre){
if(pre==n){
ans++;
}
for(int i=0;i<2;i++){
if(book[a[i]]==0){
book[a[i]]=1;
dfs(pre+1);
book[a[i]]=0;
}else if(book[a1[i]]==0){
book[a1[i]]=1;
dfs(pre+1);
book[a1[i]]=0;
}
}
}
int main(){
cin >>n;
for(int i=0;i<n;i++){
cin >>a[i]>>a1[i];
}
dfs(0);
cout <<ans;
return 0;
}