BOJ 6591 이항 쇼다

 
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <functional>

typedef long long int ll;
using namespace std;
#define INF 1234567890
#define N 200000

const int LIMIT = 1e+9;
int n, m;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	while (true) {
		long long res = 1;
		cin >> n >> m;
		if (n == 0 && m == 0)
			break;
		m = min(m, n - m);

		for (int i = 1; i <= m; i++) {
			res *= n;
			res /= i;
			n--;
		}
		cout << res << "\n";
	}

	return 0;
}



이항 쇼다운

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 5424 1218 1009 24.191%

문제

n개의 원소 중에서 k개를 순서 없이 선택하는 방법의 수는 몇 가지 일까?

입력

입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 231-1 을 넘지 않는 두 자연수 n(n ≥ 1)과 k(0 ≤ k ≤n)로 이루어져 있다.

입력의 마지막 줄에는 0이 두 개 주어진다.

출력

각 테스트 케이스에 대해서, 정답을 출력한다. 항상 정답이 231보다 작은 경우만 입력으로 주어진다.

예제 입력 1

4 2
10 5
49 6
0 0

예제 출력 1

6
252
13983816