// Latihan bergaya OSN, Bab 17, soal 2 -- pembahasan. // // Sekat dan bintang: N permen berjajar punya N-1 celah, dan memilih // K-1 celah untuk disekat membagi permen menjadi K bagian tak kosong. #include #include using namespace std; const long long MOD = 1000000007LL; long long pangkat(long long alas, long long eksponen) { long long hasil = 1; alas %= MOD; while (eksponen > 0) { if (eksponen % 2 == 1) hasil = hasil * alas % MOD; alas = alas * alas % MOD; eksponen /= 2; } return hasil; } int main() { long long n, k; cin >> n >> k; if (k > n) { cout << "0\n"; return 0; } int batas = n; vector fakt(batas + 1); fakt[0] = 1; for (int i = 1; i <= batas; i++) fakt[i] = fakt[i - 1] * i % MOD; // C(n-1, k-1) long long atas = fakt[n - 1]; long long bawah = fakt[k - 1] * fakt[n - k] % MOD; cout << atas * pangkat(bawah, MOD - 2) % MOD << "\n"; return 0; }