[백준] 1010번 다리 놓기 / C++
#문제
#풀이
#include <iostream>
#include <vector>
using namespace std;
vector<pair<int, int>> sight;
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL);
int T;
cin >> T;
for (int i = 0; i < T; ++i)
{
int N, M;
cin >> N >> M;
sight.push_back(make_pair(N, M));
}
for (int i = 0; i < T; ++i)
{
long long result = 1;
int r = 1;
for (int j = sight[i].second; j > (sight[i].second - sight[i].first); --j)
{
result = result * j;
result = result / r;
r++;
}
cout << result << '\n';
}
return 0;
}
#정리
이항정리 문제는 combination으로 접근한다. nCr(ex. 5C3 = 543 / 321)
Enjoy Reading This Article?
Here are some more articles you might like to read next: