From 1654fdbdff1973f64d7f73aaddedc0a21d91ce33 Mon Sep 17 00:00:00 2001 From: lkhyun <102892446+lkhyun@users.noreply.github.com> Date: Tue, 17 Jun 2025 21:54:48 +0900 Subject: [PATCH] =?UTF-8?q?[20250617]=20BOJ=20/=20P5=20/=20=EC=83=81?= =?UTF-8?q?=EB=82=A8=EC=9E=90=20=EA=B3=BD=EC=B2=A0=EC=9A=A9=20/=20?= =?UTF-8?q?=EC=9D=B4=EA=B0=95=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \352\263\275\354\262\240\354\232\251.md" | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 "lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" diff --git "a/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" "b/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" new file mode 100644 index 00000000..6e54d63c --- /dev/null +++ "b/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" @@ -0,0 +1,60 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static StringTokenizer st; + static int N,M,K; + static HashSet chosen; + static int cheolyoung; + static int answer = 0; + + public static void main(String[] args) throws IOException { + st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + K = Integer.parseInt(st.nextToken()); + chosen = new HashSet<>(); + + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + chosen.add(Integer.parseInt(st.nextToken())); + chosen.add(Integer.parseInt(st.nextToken())); + } + st = new StringTokenizer(br.readLine()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + cheolyoung = Math.abs(a%K - b%K); + + List remainders = new ArrayList<>(); + for (int i = 1; i <= 4*N; i++) { + if(!chosen.contains(i) && i != a && i != b) { + remainders.add(i % K); + } + } + Collections.sort(remainders); + + int size = remainders.size(); + int mid = size / 2; + int left = 0; + int right = mid; + + while (left < mid && right < size) { + int diff = remainders.get(right) - remainders.get(left); + + if (diff > cheolyoung) { + answer++; + left++; + right++; + } else { + right++; + } + } + + bw.write(Math.min(answer, M - 1) + "\n"); + bw.close(); + } +} +```