import java.util.Scanner;
public class Main {
public static void main(String[] arg) {
Scanner scanner = new Scanner(System.in);
// todo
}
}
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");elseprintf("%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;elseans -= 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);}}