코딩캠프/BOJ

[1010] 다리놓기

코곰_ 2024. 2. 21. 17:39
// 1010 다리 놓기  
// 조합론, 파스칼의 삼각형  
#include<iostream>
#include<cstdio>
#define MAX 30 
using namespace std;

unsigned long long int dp[MAX+1][MAX+1];


int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	dp[0][0] = 1;
    for(int i=1; i<=MAX; i++){
		dp[i][0] = 1;
		for(int j=1; j<=i; j++){
			dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
		}
	}
	int T;
	scanf("%d", &T);
    for(int i=0; i<T; i++){
    	int N, K;
    	scanf("%d %d", &K, &N);	
    	printf("%lld\n", dp[N][K]);
	}
	return 0;
}