func_code_string: #include <bits/stdc++.h>   using namespace std;   long long t, xiaoyud, dayu, n, x, pos, ans1, mo = 1e9 + 7, ans2, ans;   int main() {     cin >> n >> x >> pos;     long long l = 0, r = n;     while (l < r) {       long long mid = (l + r) / 2;       if (mid <= pos) {         l = mid + 1;         if (mid != pos) xiaoyud++;       } else {         r = mid;         dayu++;       }     }     ans1 = 1;     for (long long i = 1; i <= xiaoyud; i++) {       ans1 = (ans1 * (x - 1 - i + 1)) % mo;     }     ans2 = 1;     for (long long i = 1; i <= dayu; i++) {       ans2 = (ans2 * (n - x - i + 1)) % mo;     }     ans = (ans1 * ans2) % mo;     for (long long i = 1; i <= n - xiaoyud - dayu - 1; i++) {       ans = (ans * (n - xiaoyud - dayu - i)) % mo;     }     cout << ans;   }   