122AC - ABC063C: Bugged
ABC063-C (300 points)
問題
集合 の部分和のうち, の倍数でないものの最大値を求める.
- 入力は全て整数
方針
- なので, が の倍数でなければ最大値.
- が の倍数である場合, 集合 の要素の中に の倍数でない数があれば, そのような数の中で最小のものを として, が最大値.
- 集合 の要素が全て の倍数がある場合には, どのように部分和をとっても の倍数になるので, 最大値はゼロ.
# input N = int(input()) S = [int(input()) for _ in range(N)] S = sorted(S) n = -1 # 10の倍数でない配点の最小値 for i in range(N): if S[i] % 10 != 0: n = i break if n == -1: # 配点が全て10の倍数の場合 print(0) elif sum(S) % 10 != 0: # 全て足して10の倍数にならない場合 print(sum(S)) else: # 全合計が10の倍数の場合 print(sum(S) - S[n]) # 10の倍数ではない最小配点の問題に不正解