#include<bits/stdc++.h>
using namespace std;
unsigned long long min1,max1,mid1,num[3];
void compare(unsigned long long a,unsigned long long b,unsigned long long c) //比较三个值的大小
{
num[0]=a;num[1]=b;
num[2]=c;
sort(num,num+3);
min1=num[0];
mid1=num[1];
max1=num[2];
}
int main()
{
unsigned long long x,y,z,a;
cin>>x>>y>>z;
compare(x,y,z);
if(x==y&&y==z)
{
cout<<0<<endl;
}
else if(x>=y&&z>=y) //当两边数大于或等于中间数时
{
if(max1==1) //特殊情况:当最大值为1时
cout<<0<<endl;
else if(x==z) //当两边值都相等时
cout<<z-y-1<<endl;
else
cout<<(max1-mid1-1)*2+mid1-min1<<endl;
}
else //中间的数至少大于两边的其中一个数时
{
if(max1==mid1) //特殊情况:最大值跟中间值相等时
{
cout<<mid1-min1-1<<endl;
}
else
cout<<(max1-mid1-1)*2+(mid1-min1)<<endl;
}
return 0;
}
codeforces 732C Sanatorium(数学题)
最新推荐文章于 2019-08-09 15:02:42 发布