这道题就是小思维题
可以把情况分为两类,b == 0,b >= 1
当 b == 0, 那么就会出现无法全排列的情况,即最后有两个以上的数在末尾
其他情况均可排列
代码
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
void solve()
{
long long n, b, c;
long long ans = -1;
cin >> n >> b >> c;
if (b >= 1)
{
if (n <= c)
{
ans = n;
}
else
{
ans = c;
n -= c;
ans += n - (n + b - 1) / b;
}
}
else
{
if (n <= c)
{
ans = n;
}
if (c == n - 1)
{
ans = c;
}
if (c == n - 2)
{
ans = n - 1;
}
}
printf("%lld\n", ans);
return;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int t;
cin >> t;
while (t -- )
{
solve();
}
}








![[含文档+PPT+源码等]精品基于springboot实现的原生Andriod手机使用管理软件](https://img-blog.csdnimg.cn/img_convert/485b39844736dda91d34414e2089d39c.jpeg)








![[每周一更]-(第123期):模拟面试|消息队列面试思路解析](https://i-blog.csdnimg.cn/direct/effcf975bd5f4dd187d0412a395c3655.jpeg#pic_center)

