*해결방안 : 동쪽에 있는 '서로 다른' M개의 사이트 중에서 N개를 뽑은 다음 순서대로 서쪽 사이트에 연결하면 된다.
따라서 조합 mCn을 쓰면 된다. M!/((M-N)!N!)이다.
*추가 : 3개의 팩토리얼을 다 구현하는 것은 번거로우므로 M!/(M-N)!은 M부터 (M-N+1) 까지 곱해진 것으로 바꾼다.
*int 범위를 넘는 값이 나오므로 double 사용하였다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int val = 0;
int m = 0;
int n = 0;
double total = 0;
double p = 1;
scanf("%d", &val);
for (int i = 0; i < val; i++) {
scanf(" %d %d", &n, &m);
for (int k = m-n+1; k <= m; k++) {
p = p * k;
}
total = p;
p = 1;
for (int k = 1; k <= n; k++) {
p = p * k;
}
total = total / p;
p = 1;
printf("%.0lf\n", total);
}
return 0;
}
'5_BAEKJOON' 카테고리의 다른 글
5 BAEKJOON) 유클리드 호제법 (0) | 2022.11.15 |
---|---|
5 BAEKJOON) 2839 : 설탕 배달 (0) | 2022.11.07 |
5 BAEKJOON) 백준 14681 : 사분면 고르기 (0) | 2022.11.07 |
5 BAEKJOON) 백준 10828 : 스택 (0) | 2022.11.07 |
5 BAEKJOON) 백준 : Stack에 대해 (0) | 2022.11.06 |