AtCoder Beginner Contest 118

はい。
https://atcoder.jp/contests/abc118

A - B +/- A

問題文の指示通りに+と-を計算する。

B - Foods Loved by Everyone

1からmまでを用意する。各行の好きなものと重複してるものだけ残して最後に残ったのが全ての人が好きと答えたものという感じで処理してました。 最初に1からmまで用意しても1人目の処理でその1人目の好きなものしか残らないので、特に意味はないのですけどforの中で1人目とそれ以外で分岐が必要になったりするのでソースの長さはあまり変わらないんじゃないかと。書きやすい書き方でいいと思います。

C - Monsters Battle Royale

はい、この操作で残るのほんとに最大公約数に必ずなるのかな。とAC出ても不安だったんですけども最後に数列の全ての数と剰余が出なくなってから解を確定させているので最大公約数で間違いないです。多分
C++Pythonでのsetからpopで取り出す相当のことするのが面倒でした。本当は他の方法があるのかもしれませんが。順番を保証するかどうかでsetは2種類が。

D - Match Matching

dp配列は1次元配列で出来るらしいです。dp[0][w]にはw本使っているときには何桁の数字なのか、dp[v][w]にはw使っているときに数字vを何個使っているかを入れています。