https://atcoder.jp/contests/abc204/tasks/abc204_d
上記サイトの問題に対して, 私の解答が以下となります.
Python
1n = int(input()) 2t = sorted(list(map(int, input().split())), reverse=True) 3ans = sum(t) 4for i in range(n-1): 5 a = [t[_] for _ in range(i+1)] 6 b = [] 7 for j in range(i+1, n): 8 if sum(a) < sum(b): 9 a.append(t[j]) 10 else: 11 b.append(t[j]) 12 m = max(sum(a), sum(b)) 13 print(a, b, m) 14 if m < ans: 15 ans = m 16print(ans)
サンプルデータへの正答率が9割程なのですが, 残りの誤答がどういった部分で生じているのかわかりません.
コードの反例となる入力データにはどのようなものがあるのでしょうか.
以下コードの解説:
時間のかかる順に料理n個を並べる.
iを1からnまで走らせて, i個を1つ目のオーブンに必ず入れる事例を想定する.
このとき残りの料理のためにjをi+1からnまで走らせて, 使用時間に余裕のあるオーブンの方にj番目の料理を入れるという操作を行ってオーブンの使い方を決める.
この事例のオーブンの使用時間をmとする.(すなわちmはiを変数としている.)
mの最小値を求めれば, これが最小の使用時間となる.
なお, コード下から4行目にprint(a, b, m)と余計なものがありますが, これは解答時には事前に消してあります.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/07 14:19