π λ¬Έμ
ν볡 μ μΉμ μμ₯μΈ νμμ΄λ μ΄λ λ Nλͺ μ μμλ€μ ν€ μμλλ‘ μΌλ ¬λ‘ μ€ μΈμ°κ³ , μ΄ Kκ°μ μ‘°λ‘ λλλ €κ³ νλ€. κ° μ‘°μλ μμμ΄ μ μ΄λ ν λͺ μμ΄μΌ νλ©°, κ°μ μ‘°μ μν μμλ€μ μλ‘ μΈμ ν΄ μμ΄μΌ νλ€. μ‘°λ³λ‘ μΈμμκ° κ°μ νμλ μλ€.
μ΄λ κ² λλμ΄μ§ μ‘°λ€μ κ°μ λ¨μ²΄ ν°μ μΈ λ₯Ό λ§μΆλ €κ³ νλ€. μ‘°λ§λ€ ν°μ μΈ λ₯Ό λ§μΆλ λΉμ©μ μ‘°μμ κ°μ₯ ν€κ° ν° μμκ³Ό κ°μ₯ ν€κ° μμ μμμ ν€ μ°¨μ΄λ§νΌ λ λ€. μ΅λν λΉμ©μ μλΌκ³ μΆμ΄ νλ νμμ΄λ Kκ°μ μ‘°μ λν΄ ν°μ μΈ λ§λλ λΉμ©μ ν©μ μ΅μλ‘ νκ³ μΆμ΄νλ€. νμμ΄λ₯Ό λμ μ΅μμ λΉμ©μ ꡬνμ.
πμ λ ₯
μ λ ₯μ 첫 μ€μλ μ μΉμμ μλ μμμ μλ₯Ό λνλ΄λ μμ°μ N(1 ≤ N ≤ 300,000)κ³Ό λλλ €κ³ νλ μ‘°μ κ°μλ₯Ό λνλ΄λ μμ°μ K(1 ≤ K ≤ N)κ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ μμλ€μ ν€λ₯Ό λνλ΄λ Nκ°μ μμ°μκ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄ μ€ μ μλ μμλλ‘ μ£Όμ΄μ§λ€. νμμ΄λ μμλ€μ ν€ μμλλ‘ μ€ μΈμ μΌλ―λ‘, μΌμͺ½μ μλ μμμ΄ μ€λ₯Έμͺ½μ μλ μμλ³΄λ€ ν¬μ§ μλ€. μμμ ν€λ $ 10^9 $λ₯Ό λμ§ μλ μμ°μμ΄λ€.
πμΆλ ₯
ν°μ μΈ λ§λλ λΉμ©μ΄ μ΅μκ° λλλ‘ Kκ°μ μ‘°λ‘ λλμμ λ, ν°μ μΈ λ§λλ λΉμ©μ μΆλ ₯νλ€.
π λ¬Έμ νμ΄
kκ°λ‘ μͺΌκ°°μ λ ν λ¬Άμ μ€ μ΅μκ°κ³Ό μ΅λκ°μ μ°¨μ΄λ₯Ό μ΅μλ‘ λ§λλ λ¬Έμ μλ€.
λ°°μ΄μ λ§λ€μ΄μ μ λ ¬λ μμλ€μ μ΄μν μμμ ν€μ°¨μ΄λ₯Ό λ΄λλ€. μ΄ nλͺ μ μμμ΄ μμΌλ λ°°μ΄μ ν¬κΈ°λ n-1μ΄ λλ€.
(2λ²-1λ², 3λ²-2λ², 4λ²-3λ² λΌμλ)
κ·Έλ¦¬κ³ μ΄ μ°¨μ΄λ₯Ό λ΄μ λ°°μ΄μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€. κ·Έ λ€μ κ·Έ λ°°μ΄μ kλ²μ§ΈλΆν° n-1κΉμ§ λν κ°μ΄ ꡬνκ³ μ νλ κ°μ΄λ€.
μ½κ² μκ°νλ©΄ νΉμΆλκ² ν° μμμ΄λ, νΉμΆλκ² μμ μμμ νμΌλ‘ λ¬Άμ§ μκ³ κ·Έλ₯ νΌμ λ
λλ κ²μ΄λ€. λ§μ½ μ΄ μΉκ΅¬λ€μ΄ νμ λ€μ΄κ°λ€λ©΄ μ°¨μ΄λ₯Ό ν¬κ² λ§λ€κ²μ΄κΈ° λλ¬Έμ΄λ€. κ·Έλ κΈ° λλ¬Έμ 그리λ μ μΌλ‘ μμ μ°¨μ΄λ₯Ό κ°λ μ λ€μ λ¬Άμ΄ μ€λ λ ν€μ°¨μ΄λ₯Ό μ΅μν νκ²μ΄λ€.
π» μ½λ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.io.*; import java.util.*; public class Cos{ public static void main(String[] args)throws Exception{ // Fast input BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer s = new StringTokenizer(br.readLine().trim()); int n = Integer.parseInt(s.nextToken()); int k = Integer.parseInt(s.nextToken()); int[] nums = new int[n]; int res = 0; // for difference arrays Integer[] diff = new Integer[n-1]; s = new StringTokenizer(br.readLine().trim()); for (int i=0;i<n;i++){ nums[i] = Integer.parseInt(s.nextToken()); } for (int j=0;j<n-1;j++){ diff[j] = nums[j+1]-nums[j]; } // sort Arrays.sort(diff, Collections.reverseOrder()); for (int i=k-1;i<diff.length;i++){ res += diff[i]; } System.out.println(res); } } | cs |
π μνμ°©μ€
μ¬μ€ μ΄ λ¬Έμ λ νμ΄μ¬μΌλ‘ λ¨Όμ νμκ³ , κ·Έ λ€ μλ°λ‘λ μμ€μ½λλ₯Ό μ§λ³΄μλ€.
1784msμμ 960msλ‘ λ¨μΆλ μ΄μ λ λΉ λ₯Έ μ μΆλ ₯μ μ¬μ©νκΈ° λλ¬Έμ΄λ€.
π λ¬Έμ λ§ν¬ ν볡μ μΉμ
'Problem Solving > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1261λ²: μκ³ μ€ν (0) | 2022.11.23 |
---|---|
[λ°±μ€] 16118λ² λ¬λΉ μ¬μ° - νμ΄μ¬ (0) | 2022.10.10 |
[λ°±μ€] 14621λ²: λλ§ μλλ μ°μ - νμ΄μ¬ (1) | 2022.10.08 |
[λ°±μ€] 2887λ²: νμ± ν°λ - νμ΄μ¬ (1) | 2022.10.05 |
[λ°±μ€] 16932_λͺ¨μλ§λ€κΈ° - νμ΄μ¬ (1) | 2022.09.30 |