কোয়েরি লিস্ট Q দেওয়া আছে, প্রতিটি [a_i, b_i, d_i]। (০,০) থেকে শুরু। এক ধাপে যেকোনো পয়েন্ট থেকে অন্য পয়েন্টে যেতে পারেন যেখানে ইউক্লিডিয়ান দূরত্ব কমপক্ষে a এবং সর্বোচ্চ b। প্রতিটি কোয়েরির জন্য (d_i, 0) পৌঁছানোর ন্যূনতম ধাপ বের করুন।
উদাহরণ
Q = [(2,3,1), (1,2,0), (3,4,11)] → আউটপুট: [2, 0, 3]
এলগরিদম
steps(a, b, d)ফাংশন:mmin := min(a,b), mmax := max(a,b)- যদি
d == 0:0 - যদি
d == mmin or d == mmax:1 - যদি
d < mmax:2 - অন্যথায়:
ceil(d / mmax)
- প্রতিটি কোয়েরিতে
stepsকল করে রেজাল্ট লিস্ট বানান।
পাইথন কোড
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)) # আউটপুট: [2, 0, 3]
ইনপুট / আউটপুট
[(2,3,1), (1,2,0), (3,4,11)] [2, 0, 3]