#include #include #include //size_t factorial(int k, int i) { // size_t result = 1; // if (i < k - i) i = k - i; // for (int j = k; j > i; j--) { // result *= j; // } // for (int j = k - i; j > 0; j--) { // result /= j; // } // return result; //} // size_t factorial(int k, int i) { size_t result = 1; size_t div = 1; if (i > k - i) { for (int j = i + 1; j <= k; j++) { result *= j; } for (int j = 2; j <= k - i; j++) { div *= j; } } else { for (int j = k-i + 1; j <= k; j++) { result *= j; } for (int j = 2; j <= i; j++) { div *= j; } } // std::cout << k << " " << i << " " << result << " " << div << "\n"; // std::cout << (float ) result / div << "\n"; result /= div; return result; } using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int a, b, k, c; cin >> a >> b >> k >> c; if (c == a && c == b) { cout << k << endl; return 0; } if (c != a && c != b) { cout << 0 << endl; return 0; } size_t result = 0; for (int i = 1; i <= k; i++) { result += i * factorial(k, i); } result = result % 1000000007; cout << result << endl; return 0; }