组合数快速求法
#include <bits/stdc++.h>
#define ll long long
#define MAXN 1010
using namespace std;
namespace SHuxinn{ll pri[MAXN];ll ni[MAXN];ll ans1 , ans2;ll pow(ll a , ll b){ll ans = 1 , base = a ;//base为底数while(b){if(b&1){ans = (base * ans) % mod;}base = (base * base) % mod;b /= 2;} return ans;}void Z(){//oi笑传之打打表 pri[0] = 1;ni[0] = 1;for (int i = 1 ; i < MAXN ; i ++){pri[i] = pri[i - 1] * i % mod;ni[i] = pow(pri[i] , mod - 2);} }void Sx5(){Z();int n , m ;cin >> n >> m;ans1 = ((pri[n - 1] * ni[m - 1] % mod) * ni[n - m]) % mod;ans2 = ((pri[n + m - 1] * ni[m - 1] % mod) * ni[n]) % mod;printf("%lld %lld" , ans1 , ans2);}
}
int main(){SHuxinn::Sx5();return 0;
}