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