Codeforces Round #605 (Div. 3)
题目链接:http://codeforces.com/contest/1272/problem/A
测试样例:
input
8
3 3 4
10 20 30
5 5 5
2 4 3
1 1000000000 1000000000
1 1000000000 999999999
3 2 5
3 2 6
output
0
36
0
0
1999999994
1999999994
2
4
AC代码1:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int t;
scanf("%d",&t);
ll a[3];
while(t--)
{
for(int i=0;i<3;i++)
scanf("%lld",&a[i]);
sort(a,a+3);
if(a[0]<a[1]&&a[1]<a[2])
a[0]++,a[2]--;
else if(a[2]==a[1]&&a[1]>a[0])
a[1]--,a[2]--,a[0]++;
else if(a[0]==a[1]&&a[2]>a[1])
a[0]++,a[1]++,a[2]--;
ll sum=0;
sum+=max((ll)0,a[1]-a[0])+max((ll)0,a[2]-a[0])+max((ll)0,a[2]-a[1]);
printf("%lld\n",sum);
}
return 0;
}
AC代码2:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
ll x,y,z;
scanf("%lld%lld%lld",&x,&y,&z);
ll sum=abs(y-x)+abs(z-x)+abs(z-y)-4;
printf("%lld\n",max(sum,(ll)0));
}
return 0;
}