ধরুন আমাদের চারটি সংখ্যা আছে n, x, a এবং b। সারিতে এন ছাত্র আছে। তাদের মধ্যে দুই প্রতিদ্বন্দ্বী শিক্ষার্থী রয়েছে। তাদের একজন ক অবস্থানে এবং অন্যটি খ অবস্থানে রয়েছে। অবস্থানগুলি 1 থেকে n পর্যন্ত বাম থেকে ডানে সংখ্যাযুক্ত। আমরা এই দুই ছাত্রের মধ্যে দূরত্ব সর্বাধিক করতে চাই। আমরা x বার নিম্নলিখিত অপারেশন করতে পারি:দুটি সন্নিহিত ছাত্র নির্বাচন করুন এবং তারপর তাদের অদলবদল করুন। x অদলবদল করার পর আমাদের সর্বোচ্চ সম্ভাব্য দূরত্ব খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুট n =5 এর মত হয়; x =1; a =3; b =2, তাহলে আউটপুট হবে 2, কারণ আমরা স্টুডেন্টদের 3 এবং 4 পজিশনে অদলবদল করতে পারি তাই এই দুই ছাত্রের মধ্যে দূরত্ব হল |4 - 2| =2।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
return minimum of (|a - b| + x) and (n - 1)
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(int n, int x, int a, int b) { return min(abs(a - b) + x, n - 1); } int main() { int n = 5; int x = 1; int a = 3; int b = 2; cout << solve(n, x, a, b) << endl; }
ইনপুট
5, 1, 3, 2
আউটপুট
2