Kazun の競プロ記録

競技プログラミングに関する様々な話題を執筆します.

AtCoder Beginner Contest 241 B問題 Pasta

問題

atcoder.jp

提出解答

atcoder.jp

問題の概要

 N 本のパスタがあり,  i 番目のパスタの長さは  A_i である.

次の  M 日間の予定を完遂できるか?

  •  j 日目において, 長さがちょうど  B_j のパスタ  1 本を食べる (食べたらなくなる) (そのような長さが存在しない場合, 失敗).

制約

  •  1 \leq M \leq N \leq 1000
  •  1 \leq A_i, B_j \leq 10^9

解法

非負整数  x に対して,  A_i=x となる  i の個数を  D_x,  B_j=x となる  j の個数を  E_x とする.

このとき, 予定を完遂できることの必要十分条件は, 「全ての非負整数  x において,  D_x \leq E_x が成り立つ」である.

 D_x, E_x は辞書などを用いることで数えることができる.

また, 上の判定条件において,  E_x=0 であるような  x については考慮する必要がないので,  B に登場している  x についてのみ見れば良い.