結果

問題 No.966 引き算をして門松列(その1)
ユーザー zer0
提出日時 2020-01-13 21:21:29
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 105 ms / 2,000 ms
コード長 1,093 bytes
コンパイル時間 352 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 13,184 KB
最終ジャッジ日時 2024-12-22 21:38:28
合計ジャッジ時間 1,118 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

def midfind(midlst):
    global maxt
    global mint
    midt = 0
    if midlst.count(maxt) == 2:
        midt = maxt
    else:
        midt = mint
    return midt

T = int(input())
abclst = [list(map(int, input().split())) for _ in range(T)]

for i in range(T):
    maxt = max(abclst[i])
    mint = min(abclst[i])
    midt = 0
    ans = 10 ** 9
    if abclst[i].count(abclst[i][0]) == 3:
        if abclst[i][0] >= 3:
            print(3)
        else:
            print(-1)
        continue

    for j in range(3):
        if abclst[i][j] != maxt and abclst[i][j] != mint:
            midt = abclst[i][j]
            if j == 0 or j == 2:
                ans = 0
            break
    if midt == 0:
        midt = midfind(abclst[i])
    if ans == 0:
        print(ans)
    else:
        tmp1 = maxt - midt + 1
        if maxt - tmp1 == mint:
            tmp1 += 1
        if maxt - tmp1 > 0:
            ans = tmp1
        tmp2 = midt - mint + 1
        if midt - tmp2 > 0:
            ans = min(ans, tmp2)
        if ans == 10 ** 9:
            print(-1)
        else:
            print(ans)
0