From 1992f8705ea8d927722a065af8d23c1d3294439c Mon Sep 17 00:00:00 2001 From: Rayd-kim <91304459+Rayd-kim@users.noreply.github.com> Date: Wed, 16 Apr 2025 17:31:48 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[=EB=B0=B1=EC=A4=80-23290]=20=EB=A7=88?= =?UTF-8?q?=EB=B2=95=EC=82=AC=20=EC=83=81=EC=96=B4=EC=99=80=20=EB=B3=B5?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\231\200\353\263\265\354\240\234.java" | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 "\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main23290_\353\247\210\353\262\225\354\202\254\354\203\201\354\226\264\354\231\200\353\263\265\354\240\234.java" diff --git "a/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main23290_\353\247\210\353\262\225\354\202\254\354\203\201\354\226\264\354\231\200\353\263\265\354\240\234.java" "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main23290_\353\247\210\353\262\225\354\202\254\354\203\201\354\226\264\354\231\200\353\263\265\354\240\234.java" new file mode 100644 index 00000000..66d3d8f9 --- /dev/null +++ "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main23290_\353\247\210\353\262\225\354\202\254\354\203\201\354\226\264\354\231\200\353\263\265\354\240\234.java" @@ -0,0 +1,198 @@ +package study13week; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.PriorityQueue; +import java.util.Queue; +import java.util.StringTokenizer; + +public class Main23290_마법사상어와복제 { + static class Fish { + int h, w, dir; + + public Fish(int h, int w, int dir) { + this.h = h; + this.w = w; + this.dir = dir; + } + + public Fish(Fish f) { + this.h = f.h; + this.w = f.w; + this.dir = f.dir; + } + } + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static StringTokenizer st; + + // 방향은 상, 좌, 하, 우로 + static int[] dh = { 0, -1, 0, 1, 0 }, dw = { 0, 0, -1, 0, 1 }, shark = new int[2]; + +//←, ↖, ↑, ↗, →, ↘, ↓, ↙ + static int move[][] = { { 0, -1 }, { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, 1 }, { 1, 1 }, { 1, 0 }, { 1, -1 } }; + static int M, S, max, shark_move; + + static Queue magic = new LinkedList<>(); + static List fish = new LinkedList<>(); + + static int[][] smell = new int[5][5]; + static boolean[][] visited = new boolean[5][5]; + + static List map[][]; + + public static void main(String[] args) throws IOException { + init(); + while (S-- > 0) { + solve(); + } + + System.out.println(fish.size()); + } + + static void solve() { + // 복제 마법 실행 + for (Fish f : fish) { + magic.add(new Fish(f)); + } + + // 물고기 이동, 이동하면서 map에 채워주기 + moveFish(); + + // 상어 이동 방향 구하기 + max = 0; + shark_move = 555; + visited[shark[0]][shark[1]] = true; + moveShark(shark[0], shark[1], 0, 0, 0); + visited[shark[0]][shark[1]] = false; + + // 구한 이동 방향대로 물고기를 잡아먹기. 이 때 물고기 냄새 남기기 + realMoveShark(shark_move); + + // map에 있는 물고기를 다시 list로 + fish.clear(); + for (int i = 1; i <= 4; i++) { + for (int j = 1; j <= 4; j++) { + for (Fish f : map[i][j]) + fish.add(f); + } + } + + // 물고기의 냄새가 사라짐 + for (int i = 1; i <= 4; i++) { + for (int j = 1; j <= 4; j++) { + if (smell[i][j] > 0) + smell[i][j]--; + } + } + + // 복제마법 완료. + while (!magic.isEmpty()) { + Fish f = magic.poll(); + fish.add(f); + } + } + + static void realMoveShark(int dir) { + int div = 100; + while (dir != 0) { + int d = dir / div; + dir %= div; + div /= 10; + shark[0] += dh[d]; + shark[1] += dw[d]; + + int h = shark[0]; + int w = shark[1]; + + if (map[h][w].size() > 0) { + smell[h][w] = 3; + + map[h][w].clear(); + } + } + } + + static void moveFish() { + map = new LinkedList[5][5]; + + for (int i = 1; i <= 4; i++) { + for (int j = 1; j <= 4; j++) { + map[i][j] = new LinkedList<>(); + } + } + + for (Fish f : fish) { + int nh, nw; + + To: for (int dir = 0; dir < 8; dir++) { + int d = (f.dir - dir + 8) % 8; + nh = f.h + move[d][0]; + nw = f.w + move[d][1]; + + if (nh > 0 && nh <= 4 && nw > 0 && nw <= 4 && smell[nh][nw] == 0) { + if (nh == shark[0] && nw == shark[1]) + continue; + + // 이동할 수 있으면 fish의 방향과 위치를 조정해 주고 dir반복문을 탈출 + f.h = nh; + f.w = nw; + f.dir = d; + + break To; + } + } + map[f.h][f.w].add(f); + } + } + + static void moveShark(int h, int w, int cnt, int num, int dir) { + if (cnt == 3) { + if (max < num) { + max = num; + shark_move = dir; + } else if (max == num && shark_move > dir) { + shark_move = dir; + } + return; + } + + int nh, nw; + for (int i = 1; i <= 4; i++) { + nh = h + dh[i]; + nw = w + dw[i]; + + if (nh > 0 && nh <= 4 && nw > 0 && nw <= 4) { + if (!visited[nh][nw]) { + visited[nh][nw] = true; + moveShark(nh, nw, cnt + 1, map[nh][nw].size() + num, dir * 10 + i); + visited[nh][nw] = false; + } else { + moveShark(nh, nw, cnt + 1, num, dir * 10 + i); + } + } + } + } + + static void init() throws IOException { + st = new StringTokenizer(br.readLine()); + M = Integer.parseInt(st.nextToken()); + S = Integer.parseInt(st.nextToken()); + + for (int m = 0; m < M; m++) { + st = new StringTokenizer(br.readLine()); + int h = Integer.parseInt(st.nextToken()); + int w = Integer.parseInt(st.nextToken()); + int dir = Integer.parseInt(st.nextToken()) - 1; + fish.add(new Fish(h, w, dir)); + } + + st = new StringTokenizer(br.readLine()); + shark[0] = Integer.parseInt(st.nextToken()); + shark[1] = Integer.parseInt(st.nextToken()); + } +} From 484874450e9be3b8cf0e6ce0dc60b9cb51ac34fd Mon Sep 17 00:00:00 2001 From: Rayd-kim <91304459+Rayd-kim@users.noreply.github.com> Date: Wed, 16 Apr 2025 17:32:10 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[=EB=B0=B1=EC=A4=80-1507]=20=EA=B6=81?= =?UTF-8?q?=EA=B8=88=ED=95=9C=20=EB=AF=BC=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\355\225\234\353\257\274\355\230\270.java" | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 "\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1507_\352\266\201\352\270\210\355\225\234\353\257\274\355\230\270.java" diff --git "a/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1507_\352\266\201\352\270\210\355\225\234\353\257\274\355\230\270.java" "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1507_\352\266\201\352\270\210\355\225\234\353\257\274\355\230\270.java" new file mode 100644 index 00000000..228013c4 --- /dev/null +++ "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1507_\352\266\201\352\270\210\355\225\234\353\257\274\355\230\270.java" @@ -0,0 +1,111 @@ +package study13week; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.PriorityQueue; +import java.util.StringTokenizer; + +public class Main1507_궁금한민호 { + static class Node implements Comparable { + int num; + int len; + + public Node(int num, int len) { + this.num = num; + this.len = len; + } + + @Override + public int compareTo(Node o) { + return Integer.compare(this.len, o.len); + } + } + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static StringTokenizer st; + static int N, dist[][], ret; + + public static void main(String[] args) throws IOException { + init(); + if (!isOk()) { + System.out.println(-1); + return; + } + + for (int i = 0; i < N - 1; i++) { + for (int j = i + 1; j < N; j++) { + int temp = dist[i][j]; + dist[i][j] = 0; + dist[j][i] = 0; + + if (bfs(i, j) > temp) {// i - j 간선을 지운다. + dist[i][j] = temp; + dist[j][i] = temp; + } else { + ret -= temp; + } + } + } + + System.out.println(ret); + } + + static boolean isOk() { + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + if (i == j) continue; + for (int k = 0; k < N; k++) { + if (j == k || i == k) continue; + if (dist[i][j] > dist[i][k] + dist[k][j]) { // 직선 거리로 가는게 더 클 때 + return false; + } + } + } + } + return true; + } + + static int bfs(int a, int b) { + PriorityQueue pq = new PriorityQueue<>(); + int[][] distance = new int [N][N]; + for (int i = 0; i < N; i++) { + Arrays.fill(distance[i], Integer.MAX_VALUE); + } + + distance[a][a] = 0; + pq.add(new Node(a, 0)); + + while (!pq.isEmpty()) { + Node n = pq.poll(); + + if (n.num == b) { + return n.len; + } + + for (int i = 0; i < N; i++) { + if (dist[n.num][i] > 0 && distance[n.num][i] > n.len) { + distance[n.num][i] = n.len; + pq.add(new Node(i, dist[n.num][i] + n.len)); + } + } + } + + return Integer.MAX_VALUE; + } + + static void init() throws IOException { + N = Integer.parseInt(br.readLine()); + + dist = new int [N][N]; + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < N; j++) { + dist[i][j] = Integer.parseInt(st.nextToken()); + ret += dist[i][j]; + } + } + ret /= 2; + } +} From 5682e70fbb1148e631e36e6a85faac05424b374a Mon Sep 17 00:00:00 2001 From: Rayd-kim <91304459+Rayd-kim@users.noreply.github.com> Date: Wed, 16 Apr 2025 17:32:38 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[=EB=B0=B1=EC=A4=80-16940]=20BFS=20?= =?UTF-8?q?=EC=8A=A4=ED=8E=98=EC=85=9C=20=EC=A0=80=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\205\234\354\240\200\354\247\200.java" | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 "\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main16940_BFS\354\212\244\355\216\230\354\205\234\354\240\200\354\247\200.java" diff --git "a/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main16940_BFS\354\212\244\355\216\230\354\205\234\354\240\200\354\247\200.java" "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main16940_BFS\354\212\244\355\216\230\354\205\234\354\240\200\354\247\200.java" new file mode 100644 index 00000000..e60cf253 --- /dev/null +++ "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main16940_BFS\354\212\244\355\216\230\354\205\234\354\240\200\354\247\200.java" @@ -0,0 +1,99 @@ +package study13week; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; +import java.util.StringTokenizer; + +public class Main16940_BFS스페셜저지 { + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static StringTokenizer st; + static int N; + static List[] nodes; + static boolean[] visited; + static Queue input = new LinkedList<>(); + static boolean isOk = true; + + public static void main(String[] args) throws IOException { + init(); + solve(input.poll()); + if (isOk) + System.out.println(1); + else + System.out.println(0); + } + + static void solve(int index) { + if (index != 1) { + isOk = false; + return; + } + Queue> q = new LinkedList<>(); + + visited[index] = true; + HashSet set = new HashSet<>(); + for (int a: nodes[index]) { + if (!visited[a]) + set.add(a); + } + q.add(set); + + while (!input.isEmpty()) { + int size = q.size(); + + while (size-- > 0) { + HashSet s = q.poll(); + + while (!s.isEmpty()) { + int next = input.poll(); + + HashSet new_set = new HashSet<>(); + if (!s.contains(next)) { + isOk = false; + return; + } + + visited[next] = true; + for (int a: nodes[next]) { + if (!visited[a]) + new_set.add(a); + } + q.add(new_set); + s.remove(next); + } + + } + } + } + + static void init() throws IOException { + N = Integer.parseInt(br.readLine()); + + nodes = new ArrayList[N + 1]; + visited = new boolean[N + 1]; + + for (int i = 1; i <= N; i++) { + nodes[i] = new ArrayList<>(); + } + + for (int i = 0; i < N - 1; i++) { + st = new StringTokenizer(br.readLine()); + int from = Integer.parseInt(st.nextToken()); + int to = Integer.parseInt(st.nextToken()); + + nodes[from].add(to); + nodes[to].add(from); + } + + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) + input.add(Integer.parseInt(st.nextToken())); + + } +} \ No newline at end of file From addb279e3d197fff7d5be04e05e6f08c5a4aaa3d Mon Sep 17 00:00:00 2001 From: Rayd-kim <91304459+Rayd-kim@users.noreply.github.com> Date: Fri, 18 Apr 2025 11:04:46 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[=EB=B0=B1=EC=A4=80-19236]=20=EC=B2=AD?= =?UTF-8?q?=EC=86=8C=EB=85=84=EC=83=81=EC=96=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\353\205\204\354\203\201\354\226\264.java" | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 "\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main19236_\354\262\255\354\206\214\353\205\204\354\203\201\354\226\264.java" diff --git "a/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main19236_\354\262\255\354\206\214\353\205\204\354\203\201\354\226\264.java" "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main19236_\354\262\255\354\206\214\353\205\204\354\203\201\354\226\264.java" new file mode 100644 index 00000000..c21e3116 --- /dev/null +++ "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main19236_\354\262\255\354\206\214\353\205\204\354\203\201\354\226\264.java" @@ -0,0 +1,143 @@ +package study13week; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.PriorityQueue; +import java.util.StringTokenizer; + +public class Main19236_청소년상어 { + static class Fish implements Comparable { + int h, w, dir, num; + + public Fish(int num, int h, int w, int dir) { + this.num = num; + this.h = h; + this.w = w; + this.dir = dir; + } + + public Fish(Fish f) { + this.num = f.num; + this.h = f.h; + this.w = f.w; + this.dir = f.dir; + } + + @Override + public int compareTo(Fish o) { + return Integer.compare(this.num, o.num); + } + } + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static StringTokenizer st; + + // ↑, ↖, ←, ↙, ↓, ↘, →, ↗ + static int move[][] = {{-1, 0}, {-1, -1}, {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}}; + static Fish start[][] = new Fish[4][4]; + static int shark[] = new int[3]; + static int max; + static PriorityQueue fishes = new PriorityQueue<>(); + + public static void main(String[] args) throws IOException { + init(); + dfs(shark[0], shark[1], shark[2], max, start); + System.out.println(max); + } + + + static void dfs(int h, int w, int dir, int sum, Fish[][] map) { + // 항상 갱신해도 상관이 없다. + max = Math.max(max, sum); + + // 물고기 PQ에 넣기 + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + if (map[i][j] == null) continue; + fishes.add(map[i][j]); + } + } + + // 물고기 이동 + moveFish(map, h , w); + + + // 상어 이동에 따른 dfs + int nh = h, nw = w; + nh += move[dir][0]; + nw += move[dir][1]; + + while (nh >= 0 && nh < 4 && nw >= 0 && nw < 4) { + if (map[nh][nw] != null) { + Fish temp = map[nh][nw]; + map[nh][nw] = null; + dfs(nh, nw, temp.dir, sum + temp.num, cloneMap(map)); + map[nh][nw] = temp; + } + + nh += move[dir][0]; + nw += move[dir][1]; + } + } + + static Fish[][] cloneMap(Fish[][] before) { + Fish[][] ret = new Fish[4][4]; + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + if (before[i][j] == null) continue; + ret[i][j] = new Fish(before[i][j]); + } + } + return ret; + } + + static void moveFish(Fish[][] map, int shark_h, int shark_w) { + while (!fishes.isEmpty()) { + Fish f = fishes.poll(); + int h = f.h, w = f.w; + + int nh, nw, d; + for (int i = 0; i < 8; i++) { + d = (f.dir + i) % 8; + nh = h + move[d][0]; + nw = w + move[d][1]; + + if (nh >= 0 && nh < 4 && nw >= 0 && nw < 4 && !(nh == shark_h && nw == shark_w)) { + f.dir = d; + f.h = nh; + f.w = nw; + if (map[nh][nw] == null) { // 빈 칸 + map[nh][nw] = f; + map[h][w] = null; + } else { // 물고기가 있는 칸 + map[nh][nw].h = h; + map[nh][nw].w = w; + + map[h][w] = map[nh][nw]; + map[nh][nw] = f; + } + break; + } + } + } + } + + static void init() throws IOException { + + for (int i = 0; i < 4; i++) { + st = new StringTokenizer(br.readLine().trim()); + for (int j = 0; j < 4; j++) { + int num = Integer.parseInt(st.nextToken()); + int dir = Integer.parseInt(st.nextToken()) - 1; + + if (i == 0 && j == 0) { + shark[2] = dir;// 상어 방향 + max = num; + continue; + } + start[i][j] = new Fish(num, i, j, dir); + } + } + } +} From 3bcb8f23b54c550a8ab6a07da0cb156aa758739d Mon Sep 17 00:00:00 2001 From: Rayd-kim <91304459+Rayd-kim@users.noreply.github.com> Date: Fri, 18 Apr 2025 17:11:24 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[=EB=B0=B1=EC=A4=80-1561]=20=EB=86=80?= =?UTF-8?q?=EC=9D=B4=20=EA=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\235\264\352\263\265\354\233\220.java" | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 "\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1561_\353\206\200\354\235\264\352\263\265\354\233\220.java" diff --git "a/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1561_\353\206\200\354\235\264\352\263\265\354\233\220.java" "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1561_\353\206\200\354\235\264\352\263\265\354\233\220.java" new file mode 100644 index 00000000..2aa2c83b --- /dev/null +++ "b/\352\271\200\354\234\240\354\204\261-13\354\243\274\354\260\250/Main1561_\353\206\200\354\235\264\352\263\265\354\233\220.java" @@ -0,0 +1,134 @@ +package study13week; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.PriorityQueue; +import java.util.Queue; +import java.util.StringTokenizer; + +public class Main1561_놀이공원 { + static class Ride implements Comparable { + int num, time, isRide; // isRide: 남은 시간. 0이면 탑승 가능 + + public Ride(int num, int time, int isRide) { + this.num = num; + this.time = time; + this.isRide = isRide; + } + + @Override + public int compareTo(Ride o) { + int comp = Integer.compare(this.isRide, o.isRide); + if (comp == 0) + return Integer.compare(this.num, o.num); + return comp; + } + } + + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static StringTokenizer st; + static int N, M, play[]; + + public static void main(String[] args) throws IOException { + init(); + if (N < M) { + for (int i = 0; i < M; i++) { + if (--N == 0) { + System.out.println(i + 1); + return; + } + } + } else if (N == M) { + System.out.println(M); + } else { + long time = getTime(); + solve(time); + } + } + + static void solve(long time) { + PriorityQueue pq = new PriorityQueue<>(); + + // 남은 아이들의 수를 구한다. 만약 딱 나누어 떨어지지 않는다면 아직 놀이기구에 탑승한 상태이다. + for (int i = 0; i < M; i++) { + N -= time / play[i]; + if (time % play[i] == 0) { + pq.add(new Ride(i + 1, play[i], 0)); + } else { + pq.add(new Ride(i + 1, play[i], play[i] - (int) time % play[i])); + N--; + } + } + + Queue temp = new LinkedList<>(); + + while (true) { + for (int i = 0; i < M; i++) { + Ride ride = pq.poll(); + + if (ride.isRide == 0) { + ride.isRide = ride.time - 1; + N--; + } else + ride.isRide--; + temp.add(ride); + + if (N == 0) { + System.out.println(ride.num); + return; + } + } + + while (!temp.isEmpty()) { + pq.add(temp.poll()); + } + } + + } + + static long getTime() { + long start = 1; + long end = 60_000_000_000L; + long mid = 0; // 놀이기구를 탔을 때 걸리는 시간 + while (start < end - 1) { + mid = (start + end) / 2; + long child = getCount(mid); + + if (child >= N) { + end = mid - 1; + } else { + start = mid; + } + } + + return start; + } + + static long getCount(long time) { + long ret = 0; + for (int i = 0; i < M; i++) { + ret += time / play[i]; + + // 딱 나누어 떨어지지 않으면 놀이기구에 탑승한 아이가 있는상태. 그 아이의 인원수도 계산해준다. + if (time / play[i] > 0 && time % play[i] != 0) + ret++; + } + + return ret; + } + + static void init() throws IOException { + st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + + play = new int[M]; + + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < M; i++) { + play[i] = Integer.parseInt(st.nextToken()); + } + } +}