func_code_string: #include <bits/stdc++.h>   using namespace std;   unsigned long long x1, out;   unsigned long long Fac(unsigned long long x1) {     unsigned long long out = 1;     for (int i = 1; i <= x1; i++) out = out * i;     return out;   }   unsigned long long Cnk(unsigned long long a, unsigned long long b,                          unsigned long long c) {     unsigned long long outL = 1;     vector<int> fac;     if (b > c) {       unsigned long long nCount = a - b;       for (int i = 2; i <= c; i++) fac.push_back(i);       while (nCount > 0) {         outL = outL * a;         a--;         nCount--;         for (int i = 0; i < fac.size(); i++) {           if (fac[i] > -1 && outL % fac[i] == 0) {             outL = outL / fac[i];             fac[i] = -1;           }         }       }     } else {       unsigned long long nCount = a - c;       for (int i = 2; i <= b; i++) fac.push_back(i);       while (nCount > 0) {         outL = outL * a;         a--;         nCount--;         for (int i = 0; i < fac.size(); i++) {           if (fac[i] > -1 && outL % fac[i] == 0) {             outL = outL / fac[i];             fac[i] = -1;           }         }       }     }     for (int i = 0; i < fac.size(); i++) {       if (fac[i] > -1) outL = outL / fac[i];     }     return outL;   }   int main() {     int n, m, t;     cin >> n >> m >> t;     for (int i = 4; i <= n; i++) {       for (int y = 1; y <= m; y++) {         if (i + y != t) continue;         out += (Cnk(n, i, n - i) * Cnk(m, y, m - y));       }     }     cout << out;     cin >> x1;   }   