結果

問題 No.966 引き算をして門松列(その1)
ユーザー zer0zer0
提出日時 2020-01-13 21:21:29
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 73 ms / 2,000 ms
コード長 1,093 bytes
コンパイル時間 1,081 ms
コンパイル使用メモリ 10,948 KB
実行使用メモリ 10,708 KB
最終ジャッジ日時 2023-08-24 14:11:14
合計ジャッジ時間 2,020 ms
ジャッジサーバーID
(参考情報)
judge12 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 16 ms
8,224 KB
testcase_01 AC 15 ms
8,184 KB
testcase_02 AC 16 ms
8,136 KB
testcase_03 AC 15 ms
8,200 KB
testcase_04 AC 60 ms
9,764 KB
testcase_05 AC 63 ms
10,460 KB
testcase_06 AC 73 ms
10,708 KB
権限があれば一括ダウンロードができます

ソースコード

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