BOJ 1976 여행 가자

1 개요[ | ]

BOJ 1976 여행 가자

2 C++[ | ]

#include <bits/stdc++.h>
using namespace std;

int N, M;
int A[210][210];
int plan[210];
int visited[210];

void dfs(int p, int x) {
	if(visited[x]) return;
	visited[x]=1;
	for(int i=1; i<=N; i++) {
		if(p==i) continue;
		if(A[x][i]==1) dfs(x,i);
	}
}

void solve() {
	dfs(-1, plan[0]);
	for(int i=0; i<M; i++) {
		if(visited[plan[i]]==0) {
			cout << "NO";
			return;
		}
	}
	cout << "YES";
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
	cin >> N >> M;
	for(int i=1; i<=N; i++) {
		for(int j=1; j<=N; j++) {
			cin >> A[i][j];
		}
	}
	for(int i=0; i<M; i++) {
	    cin >> plan[i];
	}
	solve();
}