ให้ Queries Q[i] = [a_i, b_i, d_i] เริ่ม (0,0) ขั้นตอนเดินได้ระยะ Euclidean อย่างน้อย a สูงสุด b หาขั้นต่ำไป (d_i, 0)
ตัวอย่าง: Q=[(2,3,1),(1,2,0),(3,4,11)] → [2,0,3]
ขั้นตอน
mmin=min(a,b), mmax=max(a,b)d==0: 0 ขั้นd==mmin หรือ mmax: 1 ขั้นd < mmax: 2 ขั้น (เดินสามเหลี่ยม)- มิฉะนั้น:
ceil(d/mmax)
ตัวอย่างโค้ด
from math import ceil
def steps(a, b, d):
mmin = min(a, b)
mmax = max(a, b)
if d == 0:
return 0
if d in [mmin, mmax]:
return 1
if d < mmax:
return 2
return ceil(d / mmax)
def solve(Q):
res = []
for q in Q:
a, b, d = q
res.append(steps(a, b, d))
return res
Q = [(2,3,1), (1,2,0), (3,4,11)]
print(solve(Q)) # Output: [2, 0, 3]อินพุต
[(2,3,1), (1,2,0), (3,4,11)]
เอาต์พุต
[2, 0, 3]