結果
問題 |
No.91 赤、緑、青の石
|
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
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())