Problem:


ビデオテープ

標準録画で 120 分のビデオテープがあります。テープを完全に巻き戻した状態でビデオデッキのカウンタを 00:00:00 にし、標準録画モードで録画したところ、あるカウンタ値になりました。このカウンタ値（時、分、秒）を入力し、残りのテープの長さ（録画可能時間）を求め、時：分：秒の形式で出力するプログラムを作成して下さい。

ただし、2 時間（120分）以内の入力とします。なお、テープ残量は標準録画モードと 3  倍録画モードの場合の２通りを計算し、出力例のように時、分、秒とも 2 桁ずつ出力します。また "05" のように 10 の位が 0 の場合は、"0" をつけてください。

入力

 複数のデータセットが与えられます。各データセットは以下のとおりです。

T H S

T, H, S はそれぞれ時、分、秒を表す整数です。

T, H, S がすべて -1 のとき入力の終わりとします。データセットの数は 50 を超えません。

出力

各データセットごとに

1 行目に、テープの残りを標準録画した場合の録画可能時間の時、分、秒を半角コロン区切りで、

2 行目に、テープの残りを３倍録画した場合の録画可能時間の時、分、秒を半角コロン区切りで

出力して下さい。

Sample Input

1 30 0
-1 -1 -1

Output for the Sample Input

00:30:00
01:30:00



Sample input:
1 30 0
-1 -1 -1


Sample output:
00:30:00
01:30:00

Submission status: Accepted

Solution code:
def encode(a):
    hour = 0
    minu = 0
    sec = 0
    if a >= 3600:
        hour = int(a/3600)
        a = a%3600
    if a >= 60:
        minu = int(a/60)
        a = a%60
    sec = a
    return hour,minu,sec
    
def decode(hour,minu,sec):
    return 3600*hour + 60*minu + sec

while(1):
    t,h,s = [int(i) for i in input().split()]
    if t == -1 and h == -1 and s == -1:
        break
    secs = decode(t,h,s)
    left_secs = 120*60 - secs
    hour,minu,sec = encode(left_secs)
    hour_,minu_,sec_ = encode(3*left_secs)
    print("{:0>2}:{:0>2}:{:0>2}".format(hour,minu,sec))
    print("{:0>2}:{:0>2}:{:0>2}".format(hour_,minu_,sec_))

Submission status: Accepted

Solution code:
default = 120 * 60

while 1:
    t, h, s = map(int, input().split())
    if t == -1 and h == -1 and s == -1:
        break

    time = t * 3600 + h * 60 + s
    diff = default - time
    diff3 = diff * 3

    diff_t = str(diff // 3600).zfill(2)
    diff_h = str(diff % 3600 // 60).zfill(2)
    diff_s = str(diff % 60).zfill(2)

    diff_3t = str(diff3 // 3600).zfill(2)
    diff_3h = str(diff3 % 3600 // 60).zfill(2)
    diff_3s = str(diff3 % 60).zfill(2)

    print(diff_t + ":" + diff_h + ":" + diff_s)
    print(diff_3t + ":" + diff_3h + ":" + diff_3s)

Submission status: Runtime Error

Solution code:
def doc_string():
    """
    I can fly.
    """
while True:
    h = int(raw_input) * 3600
    m = int(raw_input) * 60
    s = int(raw_input)
    time = 120 * 60 - (h + m + s)
    if h == -1 and m == -1 and s == -1:
        print "kill"

    h = str(time / 3600)
    m = str(time % 3600 / 60)
    s = str(time % 3600 % 60)
    if len(h) == 1:
        h = "0" + h
    if len(m) == 1:
        m = "0" + m
    if len(s) == 1:
        s = "0" + s
    print h + ":" + m + ":" + s

    h = str(time * 3 / 3600)
    m = str(time * 3 % 3600 / 60)
    s = str(time * 3 % 3600 % 60)
    if len(h) == 1:
        h = "0" + h
    if len(m) == 1:
        m = "0" + m
    if len(s) == 1:
        s = "0" + s
    print h + ":" + m + ":" + s

Submission status: Runtime Error

Solution code:
p=lambda x:print(f'{x//3600:02}:{x//60%60:02}:{x%60:02}')
for e in iter(input,'-1'):
 h,m,s=map(int,e.split())
 d=7200-h*3600-m*60-s
 p(d);p(d*3)

Submission status: Runtime Error

Solution code:
p=lambda x:print(f'{x//3600:02}:{x//60%60:02}:{x%60:02}')
for e in iter(input,'-1\n'):
 h,m,s=map(int,e.split())
 d=7200-h*3600-m*60-s
 p(d);p(d*3)

Submission status: Runtime Error

Solution code:
def f(t):
    c,t=t%N,t/N
    print "%02d:%02d:%02d"%(t/N,t%N,c)
    return

while 1:
    h,m,s=map(int,raw_input().split())
    if [h,m,s]==[-1,-1,-1]: break
    t=7200-(h*N+m)*N-s
    f(t)
    f(t*3)