問題一覧 > 通常問題

No.1818 6 Operations

レベル : / 実行時間制限 : 1ケース 2.500秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 47
作問者 : nok0 / テスター : Forested riano
18 ProblemId : 7267 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-01-23 11:10:06

問題文

長さ N の非負整数列 A と長さ M の非負整数列 B が与えられます。

あなたは、以下の 6 種類の操作を好きな順序で好きな回数繰り返すことができます。

  • i (1i|A|) を選ぶ。 Ai の値を Ai+1 で置き換える。
  • i (1i|A|) を選ぶ。 Ai の値を Ai1 で置き換える。
  • i (1i|A|1) を選ぶ。 Ai の値を Ai+Ai+1 で置き換え、 Ai+1 を削除する。
  • i (1i|A|1) を選ぶ。 Ai の値を Ai+Ai+1+1 で置き換え、 Ai+1 を削除する。
  • i (1i|A|) 及び非負整数 x を選ぶ。 Ai の値を Aix で置き換え、 Ai の直後に x を挿入する。
  • i (1i|A|) 及び非負整数 x を選ぶ。 Ai の値を Aix1 で置き換え、 Ai の直後に x を挿入する。

ただし、操作のどの瞬間においても、数列 A の要素は全て非負でなくてはなりません。

数列 A を数列 B に一致させるために必要な操作回数の最小値を求めてください。

制約

  • 入力は全て整数である。
  • 1N103
  • 1M103
  • 0Ai
  • 0Bi
  • i=1NAi3×103
  • i=1MBi3×103

入力

N M
A1 A2  AN
B1 B2  BM

出力

AB を一致させるために必要な操作回数の最小値を出力してください。

サンプル

サンプル1
入力
3 2
3 1 4
1 5
出力
3

以下では便宜上、問題文で与えられた操作を上から順に 操作 1、操作 2、 操作 6 と呼びます。

下記の通りに操作を行うことで、 3 回の操作で AB を一致させることが可能です。

  • 操作 2i=1 を選ぶ。その結果 A=(2,1,4) となる。
  • 操作 2i=1 を選ぶ。その結果 A=(1,1,4) となる。
  • 操作 3i=2 を選ぶ。その結果 A=(1,5)=B となる。

3 回未満の操作で AB を一致させることは不可能なことが証明できるので、答えは 3 となります。

サンプル2
入力
1 1
0
3000
出力
3000

サンプル3
入力
6 5
2 7 1 8 2 8
1 8 2 8 4
出力
8

下記の通りに操作を行うことで、 8 回の操作で AB を一致させることが可能です。

  • 操作 2i=6 を選ぶ。その結果 A=(2,7,1,8,2,7) となる。
  • 操作 2i=6 を選ぶ。その結果 A=(2,7,1,8,2,6) となる。
  • 操作 2i=6 を選ぶ。その結果 A=(2,7,1,8,2,5) となる。
  • 操作 2i=6 を選ぶ。その結果 A=(2,7,1,8,2,4) となる。
  • 操作 3i=2 を選ぶ。その結果 A=(2,8,8,2,4) となる。
  • 操作 2i=1 を選ぶ。その結果 A=(1,8,8,2,4) となる。
  • 操作 5i=3,x=2 を選ぶ。その結果 A=(1,8,2,6,2,4) となる。
  • 操作 3i=4 を選ぶ。その結果 A=(1,8,2,8,4)=B となる。

8 回未満の操作で AB を一致させることは不可能なことが証明できるので、答えは 8 となります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。