• 문제 링크
1359번: 복권
첫째 줄에 세 정수 N, M, K가 주어진다.
www.acmicpc.net
• 풀이 코드
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = read(), m = read(), k = read();
double c = 0, p = comb(n, m);
while (k <= m) {
if (n - m >= m - k) c += comb(m, k) * comb(n - m, m - k);
k++;
}
bw.write(String.valueOf(c / p));
bw.flush();
}
private static long comb(int n, int r) {
if (n == r || r == 0) return 1;
return comb(n - 1, r - 1) + comb(n - 1, r);
}
private static int read() throws IOException {
int c, n = System.in.read() & 15;
while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);
return n;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 9881 Ski Course Design - Brute Force / Java (0) | 2023.10.27 |
---|---|
[백준] 14626 ISBN - Brute Force / Java (0) | 2023.10.26 |
[백준] 12981 공 포장하기 - Greedy / Java (0) | 2023.10.24 |
[백준] 14457 Cow Tipping - Greedy / Java (0) | 2023.10.23 |
[백준] 23305 수강변경 - Greedy / Java (0) | 2023.10.22 |
댓글