###実現したいこと
最大遅延最小化スケジューリングのプログラムです。ジョブの数をn
(1以上),二次元配列time
にそれぞれ処理時間と期限を入力します。(0以上)処理の遅延時間が最小となるようにアルゴリズムを組んでいます。
###問題点
このプログラムを作ったのですが、どうやらバグがあるみたいで何かある値を入力したときだけ答えが間違ってしまうみたいなのです。どのような時にバグが発生してしまうのか教えてください。
※あっているのか間違っているのか自動的に判定してくれるものを利用したところこのようにはねられたので、どの値を入れたら正常に機能しないのかわかりません。手元でいろいろ考えた値はすべて入れてみましたがどれもあっていました。
以下私の手計算で一致したものです。
5 3 4 2 3 4 5 1 7 6 8 8 ------------ 2 0 2 0 3 0 etc..
###コード
python
1from operator import itemgetter 2n=int(input()) #ジョブの数 3 4#ジョブの処理時間と期限の入力 5time=[] 6for i in range(n): 7 a=input() 8 td_in=a.split() 9 td=[int(i) for i in td_in] 10 time.append(td) 11 12#最大遅延最小化スケジューリングのアルゴリズム 13d=sorted(time,key=itemgetter(1)) 14#print("d=",d) 15t=0 16start=[] 17for i in range(n): 18 s=t 19 start.append(s) 20 t=t+d[i][0] 21ans=t-d[i][1] 22#print(start) 23if ans>0: 24 print(ans) 25else: 26 print("0")
回答1件
あなたの回答
tips
プレビュー