求调abc232c

#include <bits/stdc++.h>
using namespace std;
struct node{
	int x,y;
}a[10],b[10];
int ans[10],vis[10],n,m;
bool check(){
    bool y[10][10]={false};
    bool z[10][10]={false};
    for(int i=1;i<=m;i++){
        int p=b[i].x;
        int q=b[i].y;
        y[p][q]=y[q][p]=true;
    }
    for(int i=1;i<=m;i++){
        int p=ans[a[i].x];
        int q=ans[a[i].y];
        z[p][q]=z[q][p]=true;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(y[i][j]!=z[i][j]){
                return false;
            }
        }
    }
    return true;
}
void dfs(int x){
    if(x==n+1){
        if(check()){
            cout<<"Yes";
            exit(0);
        }
        return;
    }else{
        for(int i=1;i<=n;i++){
            if(!vis[i]){
                vis[i]=1;
                ans[x]=i;
                dfs(x+1);
                vis[i]=0;
            }
        }
    }
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y;
	}
	for(int i=1;i<=m;i++){
		cin>>b[i].x>>b[i].y;
	}
	dfs(1);
	cout<<"No";
}

?dfs?