NC205236. 牛客蚂蚁三兄弟
描述
输入描述
先输入一个数n(1<=n<=1000),表示有n组数据;
接下来的n行,每行输入三个数a,b,c(1<=a,b,c<=10^9)表示蚂蚁们的初始位置;
输出描述
输出一个数,表示三个蚂蚁距离之和的最小值。
示例1
输入:
4 3 3 4 10 20 30 5 5 5 2 4 3
输出:
0 36 0 0
C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 476K, 提交时间: 2020-04-18 10:38:03
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } int main() { int n; int i; long long a[2],sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%lld %lld %lld",&a[0],&a[1],&a[2]); qsort(a,3,sizeof(a[0]),cmp); sum=a[2]-a[1]+a[1]-a[0]+a[2]-a[0]; if(sum-4<=0) printf("0\n"); else printf("%lld\n",sum-4); } }
C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 504K, 提交时间: 2020-04-18 09:30:05
#include <iostream> #include <algorithm> using namespace std; int main() { int n, a[3]; long long ans; scanf("%d",&n); while(n--){ scanf("%d %d %d",&a[0],&a[1],&a[2]); sort(a,a+3); ans = 2*(a[2]-a[0]); if(ans<=4) ans = 0; else ans -= 4; printf("%lld\n",ans); } return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 496K, 提交时间: 2020-04-18 09:48:29
#include<cstdio> #include<cmath> #include<cstring> int main(){ int n; int a,b,c; long long sum=0; scanf("%d",&n); while(n--){ scanf("%d%d%d",&a,&b,&c); sum=fabs(a-b)+fabs(a-c)+fabs(b-c); sum-=4; if(sum<0){ sum=0; } printf("%lld\n",sum); } }