A問題
len(a)でaの長さがわかるのでaとbの長さを比較して長い方を出力しました。
B問題
n=100と小さいので全探索で解きました。a[i]が0でないときだけバグ、バグのあるソフトの総数を表す変数に加算していき割って切り上げたものを出力しました。
C問題
n, k <= 5とすくないのでO(k^n)の全探索で解きました。Pythonには全列挙を行うための関数が用意されています。直積を求められる関数itertools.products()を用いてすべての組み合わせについて調べ、答えを出力しました。
D問題
動的計画法を使いました。蟻本で見たおかげで動的計画法にも慣れて実装できました。