【比赛回顾】广工2020程序设计初赛I-粘土人
程序员文章站
2022-04-08 17:53:11
...
I-粘土人
题目:
问题分析:
要求要最远,那么就是把手办往两边挪动咯,记得要小心注意顶位的情况,即到达最左和最右不能再移动了。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,x,a,b;
int t;
int maxmove;
int temp;
cin >> t;
while ( t-- )
{
cin >> n >> x >> a >> b;
//就默认a大把,这样子后面好操作少讨论
if (a<b)
{
temp = a;
a = b;
b = temp;
}
//计算最多两个手办都移动到最左和最右的步数
//n-a 和 b-1两者相加即是结果
maxmove = n-a+b-1;
//如果大于就直接输出,因为可以不挪完全部操作
if ( x>=maxmove )
cout << n-1 << endl;
else
cout << a-b+x << endl;
}
return 0;
}
上一篇: 对数据进行分组并取每组的最新数据
下一篇: echart--效果