UCPC
[20/07/05] B. 과일서리 (17213)
불타는강정
2020. 7. 9. 09:45
문제 읽어보니 고등학교 때 풀었던 중복 조합 문제였다. 어떤 개념을 써야 하는지는 바로 떠올랐지만 슬프게도 졸업한 지 오래라 기억이 나지 않았다. 그래서 다시 개념을 정리한 다음 풀어보았다.
모든 과일을 적어도 1개는 훔친다고 했으므로 m에 n개를 뺀 다음 계산했다.
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#define xx first
#define yy second
using namespace std;
using i64 = long long;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
int com(int n, int r)
{
if (n == r || r == 0)
return 1;
else
return com(n-1, r-1) + com(n-1, r);
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
m -= n;
printf("%d\n", com(n-1+m, m));
return 0;
}