মান লাগিয়ে, আমাদের একটি মান n আছে, n এলিমেন্টের একটি অ্যারে nums বিবেচনা করুন, যেখানে arr[i] = (2*i)+1 সব i-এর জন্য। এখন এক অপারেশনে, আমরা দুটি ইন্ডেক্স x এবং y বেছে নিতে পারি যেখানে 0 <= x, y < n এবং nums[x]- থেকে ১ বিয়োগ করব এবং nums[y]-তে ১ যোগ করব। আমাদের অ্যারের সব এলিমেন্ট একই করতে হবে। তাই যদি n থাকে, তবে nums-এর সব এলিমেন্ট একই করার জন্য মিনিমাম কত অপারেশন লাগবে তা বের করতে হবে।
যেমন, ইনপুট n = 4 হলে, আউটপুট হবে 4 কারণ n-এর জন্য অ্যারে হল [1,3,5,7], প্রথম অপারেশনে [2,3,5,6], দ্বিতীয়ে [3,3,5,5], তৃতীয়ে [4,3,4,5] এবং চতুর্থে [4,4,4,4]। এখন সব সমান।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- ans:= 0
- যদি n == 1 হয়, তবে ans রিটার্ন করুন
- q:= (n//2) -1
- j:= 1
- q >= 0 থাকা পর্যন্ত:
- ans:= ans + (n-j)
- q := q - 1
- j := j + 2
- ans রিটার্ন করুন
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:
উদাহরণ
def solve(n):
ans=0
if n==1:
return ans
q=(n//2)-1
j=1
while q>=0:
ans=ans+(n-j)
q-=1
j+=2
return ans
n = 4
print(solve(n))
ইনপুট
4
আউটপুট
4