結果

問題 No.966 引き算をして門松列(その1)
ユーザー stng
提出日時 2022-08-16 15:19:41
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 182 ms / 2,000 ms
コード長 1,193 bytes
コンパイル時間 286 ms
コンパイル使用メモリ 82,264 KB
実行使用メモリ 80,008 KB
最終ジャッジ日時 2024-10-03 06:18:40
合計ジャッジ時間 1,876 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

from re import A


t = int(input())
abc = [[int(i) for i in input().split()] for j in range(t)]


for i in range(t):
    ans = 10**10
    a,b,c = abc[i]
    #aがmax
    if a > 2:
        tmp = 0
        A,B,C = a,b,c
        if a <= c:
            tmp += abs(a-1-c)
            C = a-1
        if C <= b:
            if C - 1 <= 0:
                tmp += 10**10
            tmp += abs(C-1-b)
        
        ans = min(ans,tmp)

    #bがmax
    if b > 2:
        tmp = 0
        A,B,C = a,b,c
        if a < c:
            A = c
            C = a
        #print(A,B,C,"abc")
        if B <= A:
            tmp += abs(B-1-A)
            A = B-1
        if A <= C:
            if A - 1 <= 0:
                tmp += 10**10
            tmp += abs(A-1-c)
        ans = min(tmp,ans)
        #print(tmp,"tmp",i)

    if c > 2:
        #cがmax
        tmp = 0
        A,B,C = a,b,c
        if c <= a:
            tmp += abs(c-1-a)
            A = c-1
        
        if A <= b:
            if A - 1 <= 0:
                tmp += 10**10
            tmp += abs(A-1-b)
        #print(A,b,"aaab",tmp)

        ans = min(tmp,ans)
    if ans != 10**10:
        print(ans)
    else:
        print(-1)
    
0