ALDS1_3_B(Python)

AIZU ONLINEでALDS1_3_Bをやってみました。

以下のコードでゴリ押ししてみたところ、最後のテストでTLE....

n, q = map(int, input().split())
alist = []
endlist = []

for process in range(n):
name, time = input().split()
time = int(time)
alist.append([name, time])

total = 0
while alist:
curr = iter(alist)
ob = next(curr)
res = int(ob[1]) - q
if res > 0:
total += q
ob[1] = res
alist.append(ob)
alist = alist[1:]
else:
total += q + res
ob[1] = total
endlist.append(ob)
alist = alist[1:]

for x in endlist:
print('{} {}'.format(x[0], x[1]))

というわけで、collectionsのdequeを使ってみました。

from collections import deque

n, q = map(int, input().split())
alist = deque([])
endlist = []

for process in range(n):
name, time = input().split()
time = int(time)
alist.append([name, time])

total = 0
while alist:
curr = iter(alist)
ob = next(curr)
res = int(ob[1]) - q
if res > 0:
total += q
ob[1] = res
alist.append(ob)
alist.popleft()
else:
total += q + res
ob[1] = total
endlist.append(ob)
alist.popleft()

for x in endlist:
print('{} {}'.format(x[0], x[1]))

バッチリOKでした。

コメント

現在コメントはありません

新しいコメント

*
*
*

admin

こんにちは!Bicepperです。
メインはフロントですが、Python・AWS・GCPやったりと手を広げまくってます。

筋トレ歴10年目。筋トレのこともたまーに書いたりします。

Twitter Feed