- 互換性のあるペア
インディアンは海に深く住んでいるモンスターです。年に一度、それは家畜とさえ人々をむさぼり、土地の上に表示されます。離れてモンスターを保つために、人々が来て外のモンスターを怖がらすべてが、赤色、光、および割れノイズで自分の村を埋めます。
リトルトミーは持っている n個の 提灯を、ビッグバンバンはあり m個の 提灯を。トミーのランタンは、明るさ持って 1、 2、...、 nであり、バンバンのは、輝度有する B 1、 B 2、...、 bはMの それぞれ。
トミーはその後、バンバンはトミーの非隠された提灯の一つと対を形成するために彼自身の提灯のいずれかを選び、彼の提灯の1を非表示にする予定です。ペアの明るさは2個のランタンの明るさの積になります。
バンバンは可能な限り大きくするためにしようとしながら、トミーは、可能な限り製品は限り小さくしたいと考えています。
それらの両方を最適に選択した場合は、選択したペアの明るさを見つけることが求められます。
入力
最初の行は、二つのスペースで区切られた整数を含む N 及び M (2≤ N、 M 50≤)。
2行目は含まれて 、n個の スペースで区切られた整数 1、 2、...、 Nを。
三行目は含ま M スペースで区切られた整数 B 1、 B 2、...、 bはMを。
すべての整数は範囲 10 - 9 に 10 9。
出力
選択された一対の明るさ - 単一の整数を印刷します。
例
2 2
20 18
2 14
252
5 3
-1 0 1 2 3
-1 0 1
2
注意
最初の例では、トミーは非表示になり 20とバンバンを選択する トミーから18 自身から14。
第2の例では、トミーは非表示になり 3とバンバンが選択する トミーから2 自身から1。
書式#include <iostreamの> の#include <cmath> の#include <アルゴリズム> 使用して 名前空間はstdを、 長い 長い CMP(長い 長い X、長い 長いY) { 戻り X> Yと、 } INT )(主 { 長い 長い [ 101 ]、B [ 51 ]、Cの[ 5201 ]、N、M。 CIN >> N >> M。 もし(N> = 2 && M <= 50 ) { ため(int型 I =0 ; iがn <; iは++ ) CIN >> [I]。 以下のために(int型 i = 0 ; iがm <; iは++ ) CIN >> Bを[I]。 ソート( + N、CMP)。 ソート(B、B + M、CMP)。 以下のために(int型 i = 0 ; iがn <Iは、++は) { cは[I] = [I] * B [ 0 ]。 用(INT J = 1 ; J <Mであり、j ++ ) { C [I]= MAX(C [i]は、[I] * B [J])。 } } ソート(C、C + N、CMP)。 COUT << C [ 1 ] << ENDL。 // ため(INT i = 0; iがn <; iは++) // COUT << [I] << "「。 // coutの<<てendl; // ため(; iがmを<; I = 0 int型私は++) // COUT << B [i]は<< "「。 } 戻り 0 。 }
最大のOKから除外