কম্পিউটার

C++ প্রোগ্রাম x অদলবদলের পর দুই প্রতিদ্বন্দ্বী শিক্ষার্থীর মধ্যে সর্বোচ্চ দূরত্ব খুঁজে বের করতে


ধরুন আমাদের চারটি সংখ্যা আছে 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

  1. C++ এ দুটি ভিন্ন ভাল নোডের যেকোনো জোড়ার মধ্যে সবচেয়ে কম দূরত্ব খুঁজুন

  2. একটি বাইনারি গাছের দুটি নোডের মধ্যে দূরত্ব খুঁজে বের করার জন্য প্রশ্ন – C++ এ O(logn) পদ্ধতি

  3. C++ প্রোগ্রামে একটি বাইনারি ট্রির দুটি নোডের মধ্যে দূরত্ব খুঁজুন

  4. C++ এ যেকোনো শহর এবং স্টেশনের মধ্যে সর্বোচ্চ দূরত্ব খুঁজুন