#include #include #include using namespace std; void solve() { int N; long long K; if (!(cin >> N >> K)) return; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } // 最小値を保持する変数。十分大きな値で初期化 // long long の最大値(約 9e18)なら 10^16 をカバーできる long long min_cost = -1; // どのギア(i番目)に潤滑油を使うかを全探索 for (int i = 0; i < N; ++i) { long long current_product = 1; for (int j = 0; j < N; ++j) { if (i == j) { // 潤滑油を使うギアの場合 current_product *= (A[j] - K); } else { // 使わないギアの場合 current_product *= A[j]; } } // 初回、または今の計算結果が最小値を下回れば更新 if (min_cost == -1 || current_product < min_cost) { min_cost = current_product; } } cout << min_cost << endl; } int main() { int T; cin >> T; while (T--) { solve(); } return 0; }