मान लीजिए हमारे पास चार संख्याएँ n, x, a और b हैं। पंक्ति में n विद्यार्थी हैं। इनमें दो विरोधी छात्र भी शामिल हैं। उनमें से एक स्थिति a पर है और दूसरा स्थान b पर है। पदों को 1 से n तक बाएँ से दाएँ क्रमांकित किया गया है। हम इन दो छात्रों के बीच की दूरी को अधिकतम करना चाहते हैं। हम निम्नलिखित ऑपरेशन x बार कर सकते हैं:दो आसन्न छात्रों का चयन करें और फिर उन्हें स्वैप करें। हमें x स्वैप के बाद अधिकतम संभव दूरी ज्ञात करनी होगी।
तो, अगर इनपुट n =5 की तरह है; एक्स =1; ए =3; बी =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