或许是思维题吧
就是构造一下得出答案,如果已经是符合要求,最小值为0;如果有两个相差为2,最小值为1;如果上面两个都不符合,那就是2。
电脑快没电了。。。匆忙写一下
最后最大值就是$max(b-a,c-b) + 1$
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[6];
cin>>a[1]>>a[2]>>a[3];
sort(a + 1, a + 4);
if (a[1] + 2 == a[3]) puts("0");
else if (a[2] - a[1] == 2 || a[3] - a[2] == 2) puts("1");
else puts("2");
printf("%d\n", max(a[2] - a[1], a[3] - a[2]) - 1);
return 0;
}
表面上误导大家写max(b−a,c−b)+1,自己却写了max(b−a,c−b)-1。请改正
咋又和我代码差不多
柯南厉害。