#include<stdio.h> bool rink[220][220], check[220]; int N, M, data[1000]; void dfs(int x) { int i; check[x] = true; for (i = 1; i <= N; i++) { if (rink[x][i] && check[i] == false) dfs(i); } } int main() { int i, j; scanf("%d%d", &N, &M); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { scanf("%d", &rink[i][j]); } } for (i = 1; i <= M; i++) { scanf("%d", &data[i]); } dfs(data[1]); for (i = 1; i <= M; i++) { if (check[data[i]] == false) { printf("NO"); break; } } if (i == M + 1) { printf("YES"); } return 0; }
1976번: 여행 가자
https://www.acmicpc.net/problem/1976
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기