結果

問題 No.91 赤、緑、青の石
ユーザー kobiki
提出日時 2016-03-12 23:06:51
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 897 bytes
コンパイル時間 331 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 64,512 KB
最終ジャッジ日時 2024-09-25 11:12:59
合計ジャッジ時間 2,316 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 23 WA * 4 RE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

class Solve:
    def __init__(self):
        self.S = [int(i) for i in input().split()]

        self.a = min(self.S) # >= 0; True
        self.b = max(self.S)+1  # <= 10**7+1; False

    def solve(self):
        S = sorted(self.S)
        m = S.pop(0)
        n = m
        S0, S1 = [s-m for s in S]

        # S0とS1を同じ数にしようとする
        d = (S1 - S0)//2
        # S0とS1を同じ数又は1個差にできる場合
        if S0 >= d and S1 >= 3*d:
            n += d + (S0 + S1 - 4*d)//4 - int(S0 - d == S1 - 3*d == 2)
        # 先にS0枯渇 && 残りのS1が5個で1個生成
        elif S0 < S1//3:
            n += S0 + (S1 - 3*S0)//5
        # 先にS1枯渇 && 残りのS1を2個換算で残りのS0に足して、S0が5個で1個生成
        else:
            raise
            # n += S1//3 + (S0-S1//3 + 2*(S1%3))//5

        return n

print(Solve().solve())
0