結果
| 問題 | No.3681 心の沸騰石 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 17:35:08 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 54 ms / 2,000 ms |
| + 792µs | |
| コード長 | 1,056 bytes |
| 記録 | |
| コンパイル時間 | 219 ms |
| コンパイル使用メモリ | 96,080 KB |
| 実行使用メモリ | 79,040 KB |
| 最終ジャッジ日時 | 2026-09-05 17:35:30 |
| 合計ジャッジ時間 | 2,855 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 13 |
ソースコード
#前に提出したコードに反例あり
"""
R, P, Q = map(int, input().split())
a, b, c, d = map(int, input().split())
li = [a, b, c, 5 * 10 ** 11]
li.sort()
ans = 0
for k in range(4):
num = R // (P + Q * k)
point = li[k]
if(num >= point and point * k <= d):
li[0], li[1], li[2], li[3] = li[0] - point, li[1] - point, li[2] - point, li[3] - point
ans += point
d -= point * k
R -= point * (P + Q * k)
else:
if(k == 0):
min_people = R // P
else:
min_people = min(R // (P + Q * k), d // k)
print(ans + min_people)
break
反例
45 3 5
1 1 10 6
緑以外の人も変えることができるため
たまたま
"""
R, P, Q = map(int, input().split())
A, B, C, D = map(int, input().split())
def cost(x):
need = max(0, x - A) + max(0, x - B) + max(0, x - C)
return x * P + need * Q
lo, hi = 0, (A + B + C + D) // 3
while lo < hi:
mid = (lo + hi + 1) // 2
if cost(mid) <= R:
lo = mid
else:
hi = mid - 1
print(lo)