Hard deck/reindexing d3
080 : 조약돌 꺼내기
서버관리자 페페
2023. 6. 28. 22:09
조약돌 갯수가 뽑는 갯수보다 클 때만 공간이 열리며
이 때 1.0은 곱하기 누적의 plate다
공간에 개폐 or 다른 location으로의 서술
double로 잡아줌
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// ISC
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int M = Integer.parseInt(st.nextToken());
// D2F
st = new StringTokenizer(br.readLine()); // L2
int[] TP = new int[51];
int sum = 0;
for (int i = 0; i < M; i++) {
TP[i] = Integer.parseInt(st.nextToken());
sum += TP[i];
}
st = new StringTokenizer(br.readLine()); // L3
int K = Integer.parseInt(st.nextToken());
double[] probaility = new double[51];
double plate = 0.0;
// OP + OEC
for (int i = 0; i < M; i++) {
if (TP[i] >= K) {
probaility[i] = 1.0;
for (int k = 0; k < K; k++) {
probaility[i] *= (double) (TP[i] - k) / (sum - k);
}
}
plate += probaility[i];
}
// OEC
System.out.println(plate);
}
}