
경로(Path)는 그래프 위에서 두 정점 사이를 이동하면서 지나는 간선을 나열한 것이다.

위 그래프에서 ~[(1, 3), (3, 4), (4, 5)]~는 정점 1에서 5까지 이동하는 경로 중 하나이다. 그런데, 간선을 나열하는 대신에 지나가는 정점만으로 표현할 수도 있다. 예를 들어 위 그림의 경로는 ~[1, 3, 4, 5]~로 표현할 수도 있다.
K개의 정점 a_1, a_2, \cdots, a_K가 주어졌을 때, 이 정점을 순서대로 지나는 경로가 존재하는지 확인해보자. 즉, 주어진 그래프에서 간선 ~(a_1, a_2), (a_2, a_3), \cdots, (a_{K - 1}, a_K)~가 모두 존재하는지 확인해보자.
입력
첫째 줄에 그래프의 정점의 개수와 간선의 개수 ~N, M(1 \le N, M \le 50)~이 주어진다. 그래프의 각 정점에는 1부터 N까지 번호가 매겨져 있다.
둘째 줄부터 M개의 줄에 그래프의 간선이 주어진다. 간선은 서로 다른 두 정점 ~u, v(1 \le u, v \le N)~를 잇는다. 주어지는 그래프는 단순 그래프(Simple graph)이다. 따라서 두 정점을 잇는 간선은 최대 한 개 존재할 수 있으며, 자기 자신을 잇는 간선은 없다.
셋째 줄에 ~K(2 \le K \le N)~이 주어진다.
넷째 줄에 ~a_1, a_2, \cdots, a_K(1 \le a_i \le N)~이 주어진다.
출력
a_1, a_2, \cdots, a_K를 순서대로 지나는 경로가 존재한다면 YES를 그렇지 않다면 NO를 출력한다.
예제 입력 1
5 7
1 2
1 3
1 4
2 4
2 5
3 4
4 5
4
1 3 4 5
예제 출력 1
YES
예제 입력 2
5 7
1 2
1 3
1 4
2 4
2 5
3 4
4 5
4
1 2 3 4
예제 출력 2
NO
예제 입력 3
5 7
1 2
1 3
1 4
2 4
2 5
3 4
4 5
5
1 3 4 5 2
예제 출력 3
YES
힌트
인접 행렬이나 인접 리스트 방식으로 그래프를 저장합니다.
주어진 그래프에서 간선 ~(a_1, a_2), (a_2, a_3), \cdots, (a_{K - 1}, a_K)~가 모두 존재하는지 확인합니다.
| 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 |
|---|---|---|---|---|---|
| 🥇 | 202402699_오태영 | Python | 445ms | 10368KB | 527B |
| 🥈 | 202102717_최성윤 | Java | 1041ms | 27008KB | 1426B |
| 🥉 | 202102622_김우솔 | Java | 1053ms | 27264KB | 2283B |
| 4 | 202102713_진민혁 | Java | 1063ms | 28160KB | 1268B |
| 5 | 202302564_성준혁 | Java | 1326ms | 33024KB | 1258B |
| 6 | 202402698_오아누 | Java | 1329ms | 33280KB | 1203B |
| 7 | 202302602_이준휘 | Java | 1370ms | 33688KB | 640B |
| 8 | 202402673_박기용 | Java | 1381ms | 33436KB | 1094B |
| 9 | 202102659_안우진 | Java | 1761ms | 34048KB | 1093B |
| # | 사용자 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 |
|---|---|---|---|---|---|---|---|
| 3618 | 202102622_김우솔 | 정답 | Java | 1053ms | 27264KB | 2283B | 2024. 05. 13. 10:47 |
| 3617 | 202102622_김우솔 | 오답 | Java | 1042ms | 27136KB | 3091B | 2024. 05. 13. 10:41 |
| 3616 | 202102659_안우진 | 정답 | Java | 1761ms | 34048KB | 1093B | 2024. 05. 13. 10:36 |
| 3615 | 202102659_안우진 | 오답 | Java | 1752ms | 34304KB | 1093B | 2024. 05. 13. 10:35 |
| 3569 | 202302564_성준혁 | 정답 | Java | 1326ms | 33024KB | 1258B | 2024. 05. 11. 09:44 |
| 3563 | 202102713_진민혁 | 정답 | Java | 1063ms | 28160KB | 1268B | 2024. 05. 09. 11:27 |
| 3561 | 202102675_이문영 | 오답 | Java | 1376ms | 33408KB | 924B | 2024. 05. 09. 11:18 |
| 3559 | 202402698_오아누 | 정답 | Java | 1329ms | 33280KB | 1203B | 2024. 05. 09. 11:13 |
| 3558 | 202402699_오태영 | 정답 | Python | 445ms | 10368KB | 527B | 2024. 05. 09. 11:13 |
| 3550 | 202402699_오태영 | 오답 | Python | 444ms | 10368KB | 444B | 2024. 05. 09. 10:56 |
| 3528 | 202402673_박기용 | 정답 | Java | 1381ms | 33436KB | 1094B | 2024. 05. 09. 09:30 |
| 3510 | 202102717_최성윤 | 정답 | Java | 1041ms | 27008KB | 1426B | 2024. 05. 09. 04:11 |
| 3501 | 202302602_이준휘 | 정답 | Java | 1370ms | 33688KB | 640B | 2024. 05. 09. 03:23 |