結果

問題 No.91 赤、緑、青の石
ユーザー kobiki
提出日時 2016-03-13 10:55:19
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 42 ms / 5,000 ms
コード長 713 bytes
コンパイル時間 595 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 52,480 KB
最終ジャッジ日時 2024-06-24 06:56:48
合計ジャッジ時間 3,087 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

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)
        n = S.pop(0)
        S0, S1 = [s-n for s in S]

        # S0とS1を同じ数にしようとする
        d = (S1 - S0)//2
        # S0とS1を同じ数又は1個差にできる場合
        if S0 >= S1//3:
            n += (S0 + S1)//4 - int((S0 - d)%4 == (S1 - 3*d)%4 == 2)  # 2 2 になり得る場合のみ注意
        # 先にS0枯渇 && 残りのS1が5個で1個生成
        else:
            n += S0 + (S1 - 3*S0)//5

        return n

print(Solve().solve())
0