π λ°±μ€ 2798 λΈλμ https://www.acmicpc.net/problem/2798
λ¬Έμ
μΉ΄μ§λ Έμμ μ μΌ μΈκΈ° μλ κ²μ λΈλμμ κ·μΉμ μλΉν μ½λ€. μΉ΄λμ ν©μ΄ 21μ λμ§ μλ νλ λ΄μμ, μΉ΄λμ ν©μ μ΅λν ν¬κ² λ§λλ κ²μμ΄λ€. λΈλμμ μΉ΄μ§λ Έλ§λ€ λ€μν κ·μ μ΄ μλ€.
νκ΅ μ΅κ³ μ λΈλμ κ³ μ κΉμ μΈμ μλ‘μ΄ λΈλμ κ·μΉμ λ§λ€μ΄ μκ·Ό, μ°½μμ΄μ κ²μνλ €κ³ νλ€.
κΉμ μΈ λ²μ μ λΈλμμμ κ° μΉ΄λμλ μμ μ μκ° μ°μ¬ μλ€. κ·Έ λ€μ, λλ¬λ Nμ₯μ μΉ΄λλ₯Ό λͺ¨λ μ«μκ° λ³΄μ΄λλ‘ λ°λ₯μ λλλ€. κ·Έλ° νμ λλ¬λ μ«μ Mμ ν¬κ² μΈμΉλ€.
μ΄μ νλ μ΄μ΄λ μ νλ μκ° μμ Nμ₯μ μΉ΄λ μ€μμ 3μ₯μ μΉ΄λλ₯Ό 골λΌμΌ νλ€. λΈλμ λ³ν κ²μμ΄κΈ° λλ¬Έμ, νλ μ΄μ΄κ° κ³ λ₯Έ μΉ΄λμ ν©μ Mμ λμ§ μμΌλ©΄μ Mκ³Ό μ΅λν κ°κΉκ² λ§λ€μ΄μΌ νλ€.
Nμ₯μ μΉ΄λμ μ¨μ Έ μλ μ«μκ° μ£Όμ΄μ‘μ λ, Mμ λμ§ μμΌλ©΄μ Mμ μ΅λν κ°κΉμ΄ μΉ΄λ 3μ₯μ ν©μ κ΅¬ν΄ μΆλ ₯νμμ€.
μ λ ₯
첫째 μ€μ μΉ΄λμ κ°μ N(3 β€ N β€ 100)κ³Ό M(10 β€ M β€ 300,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€μλ μΉ΄λμ μ°μ¬ μλ μκ° μ£Όμ΄μ§λ©°, μ΄ κ°μ 100,000μ λμ§ μλ μμ μ μμ΄λ€.
ν©μ΄ Mμ λμ§ μλ μΉ΄λ 3μ₯μ μ°Ύμ μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ Mμ λμ§ μμΌλ©΄μ Mμ μ΅λν κ°κΉμ΄ μΉ΄λ 3μ₯μ ν©μ μΆλ ₯νλ€.
νμ΄
μ‘°κΈμ 무μν λ°©λ²μΌλ‘.. νμλ€.
λ¬΄λ € 3μ€ ν¬λ¬ΈμΌλ‘ λΈλ£¨νΈν¬μ€λ₯Ό ν΅ν΄ κ°μ μννμ¬ λͺ¨λ κ²½μ°μ μλ₯Ό μ°Ύμ ν Mμ κ°κΉμ΄ μλ₯Ό ꡬν΄μ€¬λ€.
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
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int sum = 0;
int approx = 0;
int[] nums = new int[n];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) nums[i] = Integer.parseInt(st.nextToken());
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
sum = nums[i] + nums[j] + nums[k];
if (approx < sum && sum <= m) approx = sum;
}
}
}
System.out.println(approx);
}
}