1735 - 购物停车
小明每周都要开车陪女朋友去商业街购物,商业街是一条笔直的大街,我们把它抽象成是X轴上的一条线段,街上的每个商铺都位于线段上整数点的位置,而顾客可以在线段上的任何一个位置停车,并且每停一次车都需要交一次费用。于是小明想知道如果自己就停一次车,然后步行去之前计划好要去的那些商铺,最后回到停车的位置,那么最短的步行路程是多少。
Input
输入的第一行为一个整数t(1<=t<=100),表示测试样例的组数。
接下来输入t组样例,每组输入占两行,第一行输入一个整数n(1<=n<=20),表示小明他们计划要去的商铺的个数,第二行输入n个整数,表示计划要去的那些商铺的位置,位置范围为[0,99]。
Output
对于每组输入,输出题目要求的最短的步行路程。
Examples
Input
2 4 24 13 89 37 6 7 30 41 14 39 42
Output
152 70
Solution C
#include<stdio.h> #define INF 0x7fffffff int main() { int t,max,min,n,a; scanf("%d",&t); while(t--) { scanf("%d",&n); max=0,min=INF; while(n--) { scanf("%d",&a); if(a>max)max=a; if(a<min)min=a; } printf("%d\n",2*(max-min)); } return 0; }
Solution C++
#include <stdio.h> int main() { int t, n, p, maxi, mini; scanf("%d", &t); while (t--) { scanf("%d", &n); maxi = -100000000; mini = 100000000; while (n--) { scanf("%d", &p); if (p > maxi) maxi = p; if (p < mini) mini = p; } printf("%d\n", (maxi - mini) * 2); } return 0; }