मान लीजिए हमारे पास चार संख्याएँ 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