結果
| 問題 |
No.1739 Princess vs. Dragoness (& AoE)
|
| コンテスト | |
| ユーザー |
customfolk
|
| 提出日時 | 2021-11-12 22:01:12 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 778 ms / 3,000 ms |
| コード長 | 1,431 bytes |
| コンパイル時間 | 176 ms |
| コンパイル使用メモリ | 82,688 KB |
| 実行使用メモリ | 149,988 KB |
| 最終ジャッジ日時 | 2024-11-25 18:31:08 |
| 合計ジャッジ時間 | 14,342 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 40 |
ソースコード
from collections import defaultdict, deque, Counter
from heapq import heapify, heappop, heappush
import math
from copy import deepcopy
from itertools import combinations, permutations, product, combinations_with_replacement
from bisect import bisect_left, bisect_right
import sys
def input():
return sys.stdin.readline().rstrip()
def getN():
return int(input())
def getNM():
return map(int, input().split())
def getList():
return list(map(int, input().split()))
def getListGraph():
return list(map(lambda x:int(x) - 1, input().split()))
def getArray(intn):
return [int(input()) for i in range(intn)]
mod = 10 ** 9 + 7
MOD = 998244353
sys.setrecursionlimit(10000000)
inf = float('inf')
eps = 10 ** (-15)
dy = [0, 1, 0, -1]
dx = [1, 0, -1, 0]
#############
# Main Code #
#############
"""
二分探索
"""
def f(x):
h = [i - x if i - x >= 0 else 0 for i in H]
a = A
for i in range(N):
t = min(h[i] // X, a)
h[i] -= X * t
a -= t
h.sort()
for i in range(N - 1, -1, -1):
if a:
h[i] -= X
a -= 1
h = [h_o if h_o >= 0 else 0 for h_o in h]
if B * Y >= sum(h):
return True
else:
return False
N, A, B, X, Y = getNM()
H = getList()
if f(0):
print(0)
exit()
ng, ok = -1, 10 ** 18
while abs(ok - ng) > 1:
mid = (ok + ng) // 2
if f(mid):
ok = mid
else:
ng = mid
print(ok)
customfolk