From 50229edeb0c8f51930bdfbff8ee26012643719fe Mon Sep 17 00:00:00 2001 From: Jinyeong Seol Date: Tue, 11 Feb 2025 10:13:46 +0900 Subject: [PATCH] =?UTF-8?q?[20250211]=20BOJ=20/=20=EA=B3=A8=EB=93=9C5=20/?= =?UTF-8?q?=20=ED=8C=8C=EA=B4=B4=EB=90=9C=20=EB=8F=84=EC=8B=9C=20/=20?= =?UTF-8?q?=EC=84=A4=EC=A7=84=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\353\220\234 \353\217\204\354\213\234.md" | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 "Seol-JY/202502/11 BOJ G5 \355\214\214\352\264\264\353\220\234 \353\217\204\354\213\234.md" diff --git "a/Seol-JY/202502/11 BOJ G5 \355\214\214\352\264\264\353\220\234 \353\217\204\354\213\234.md" "b/Seol-JY/202502/11 BOJ G5 \355\214\214\352\264\264\353\220\234 \353\217\204\354\213\234.md" new file mode 100644 index 00000000..6ec00480 --- /dev/null +++ "b/Seol-JY/202502/11 BOJ G5 \355\214\214\352\264\264\353\220\234 \353\217\204\354\213\234.md" @@ -0,0 +1,86 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.StringTokenizer; + +public class Main { + private static int N; + private static int[][] map; + private static int[] burn; + private static int[] mark; + + public static void main(String[] args) throws IOException { + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + N = nextInt(st); + map = new int[N+1][N+1]; + burn = new int[N+1]; + mark = new int[N+1]; + + int M = nextInt(st); + + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + int x = nextInt(st); + int y = nextInt(st); + + map[x][y] = 1; + map[y][x] = 1; + } + + int T = Integer.parseInt(br.readLine()); + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < T; i++) { + int value = nextInt(st); + burn[value] = 1; + mark[value] = 1; + } + + List answers = new ArrayList<>(); + for (int i = 1; i <= N; i++) { + if (burn[i] == 1) { + if (extinguish(i)) { + answers.add(i); + } + } + } + + if (Arrays.stream(mark).sum() == 0) { + System.out.println(answers.size()); + for (Integer a : answers) { + System.out.print(a + " "); + } + + return; + } + + System.out.println(-1); + } + + private static boolean extinguish(int value) { + for (int i = 1; i < N+1; i++) { + if (i == value) continue; + if (map[value][i] == 1 && burn[i] != 1) { + return false; + } + } + mark[value] = 0; + for (int i =1; i < N+1; i++) { + if (map[value][i] == 1) { + mark[i] = 0; + } + } + + return true; + } + + private static int nextInt(StringTokenizer st) { + return Integer.parseInt(st.nextToken()); + } +} +```