C++程式查詢x次交換後兩個對手學生之間的最大距離
假設我們有四個數字n、x、a和b。一行中有n個學生。其中有兩個互相競爭的學生。其中一個在位置a,另一個在位置b。位置從左到右從1到n編號。我們希望最大化這兩個學生之間的距離。我們可以執行以下操作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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP