只需要枚举使用单体攻击的次数就行了。
import sys
import math
import queue
import itertools
import heapq
from collections import deque
from array import array
from bisect import bisect_right
def read():
line = sys.stdin.readline()
if not line:
return []
return list(map(int, line.split()))
def readf():
line = sys.stdin.readline()
if not line:
return []
return list(map(float, line.split()))
mod = 10**9 + 7
inf = 10**18
def solve():
a, b, x, y = read()
ans = inf
for i in range(0, 21): # 枚举单体攻击次数
cnt = i
res = 0
aa, bb = a, b
while cnt > 0:
if aa > bb:
aa -= x
else:
bb -= x
res += 1
cnt -= 1
if aa > 0 or bb > 0:
mx = max(aa, bb)
res += (mx + y - 1) // y
ans = min(ans, res)
print(ans)
def main():
t = 1
# t = int(sys.stdin.readline())
for _ in range(t):
solve()
if __name__ == "__main__":
main()

京公网安备 11010502036488号