1日目 問題2(ジョブ)

 ある工場で1つの製品 (job) を2つの行程 (operation) を経て仕上げる 生産ラインが稼働している。最初の行程を "A" と呼び、次の行程を "B" と 呼ぶことにする。 図1は、次のように動いている生産ラインの様子を表している。 タイプ "A" の工作機械は、入力コンテナ (input container) から部品を 取り出し、行程 "A" を施し中間製品を中間製品用のコンテナ (intermidiate container) に置き、タイプ "B" の工作機械は、中間製品用コンテナから 行程 "A" が施された中間製品を取り出し、行程 "B" を施し完成品を 完成品用コンテナ (output container) に置く。
 すべての工作機械は並列かつ独立に動作し、それぞれのコンテナの大きさは 無限大とする。また、工作機械はそれぞれ違う生産能力を持ち、 それぞれの工作機械の生産スピードは決まっている。

 N 個の中間製品をつくる(つまり、"A" の行程だけを施す)のに必要な 最小時間を計算せよ (Subtask A)。さらに、N 個の完成品をつくる (つまり、A, B 両方の行程を施す) のに必要な最小時間を計算せよ (Subtask B)。

  入力コンテナ:      □□□□□□□□□□ 

  タイプ "A" 工作機械:    A1   A2    

  中間製品用コンテナ:      ■■■■    

  タイプ "B" 工作機械:   B1  B2  B3

  出力コンテナ:       ◆◆◆◆◆◆◆◆   

図1

入力データ

 ファイル INPUT.TXT は5行からなり、各行には以下のように正の整数 が(1つ以上)含まれている。
 最初の行には製品の個数 N (1≦N≦1000) が、2番目の行にはタイプ "A" の 工作機械の数 M1 (1≦M1≦30) が、3番目の行にはタイプ "A" のそれぞれの 機械の行程 "A" を処理する時間を表す M1 個の数が、 4番目の行にはタイプ "B" の工作機械の数 M2 (1≦M2≦30) が、 5番目の行にはタイプ "B" のそれぞれの機械の行程 "B" を処理する時間を 表す M2 個の数が書かれている。
 各機械が1つの行程を処理するのにかかる時間(行程を行う前に製品の元を コンテナから取り出し、処理が終わった後に製品をコンテナに置くまでの時間) は、ある単位を使って表される。それぞれの機械がかかる処理時間は、 少なくとも 1 で高々 20 である。

出力データ

 あなたのプログラムは、ファイル OUTPUT.TXT の1行目に subtask A の解を 表す正整数を1つ、2行目には subtask B の解を表す正整数を1つ書き出す こと。

入出力例

 図2はある入力ファイルとそれに対応する出力ファイルの例である。

    INPUT.TXT        OUTPUT.TXT
    ---------        ----------
    5            3 
    2            5 
    1 1   
    3     
    3 1 4 

図2