1. 程式人生 > 其它 >CF934A A Compatible Pair 題解

CF934A A Compatible Pair 題解

CF934A A Compatible Pair 題解

Content

有兩個數列 \(A\)\(B\)\(A\) 數列裡面有 \(n\) 個元素,\(B\) 數列裡面有 \(m\) 個元素,現在請從 \(A\) 數列中刪除一個數,使得 \(A\) 數列中剩下的任意一個元素與 \(B\) 數列中任意一個元素相乘得到的所有 \(m(n-1)\) 個值的最大值最小,求出這個最小值。

資料範圍:\(1\leqslant n,m\leqslant 50,-10^9\leqslant A_i,B_i\leqslant 10^9\)

Solution

資料範圍這麼小,我們為什麼不直接列舉呢?

首先列舉在 \(A\) 數列中刪除的數,然後列舉所有相乘得到的 \(m(n-1)\)

個值,求得最大值,再取最小,最後直接輸出就好了。

提醒:這道題目相乘得到的結果可能很大,需要開 \(\texttt{long long}\)

Code

int n, m;
ll a[57], b[57], ans = 0x3f3f3f3f3f3f3f3f;

int main() {
	getint(n), getint(m);
	_for(i, 1, n)	getll(a[i]);
	_for(i, 1, m)	getll(b[i]);
	_for(k, 1, n) {
		ll maxi = -0x3f3f3f3f3f3f3f3f;
		_for(i, 1, n)
			_for(j, 1, m)
				if(i != k)
					maxi = max(maxi, a[i] * b[j]);
		ans = min(ans, maxi);
	}
	writell(ans);
	return 0;
}