牛客周赛84BJAVA
目录
牛客周赛:84:B:JAVA
链接:
来源:牛客网
题目描述
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
int []arr=new int[n];
for (int i = 0; i <n ; i++) {
arr[i]=scanner.nextInt();
}
Arrays.sort(arr);
int sum=0;
sum=arr[n-1]-arr[0];
if (sum>0){
System.out.println("2"+" "+sum);
}else {
System.out.println("1"+" "+sum);
}
}
}
小红定义一个数组的陡峭值为:每两个相邻的元素,差值的绝对值之和。例如,数组 {2,3,1}{2,3,1}{2,3,1} 的陡峭值是 ∣2−3∣+∣3−1∣=3|2-3|+|3-1|=3∣2−3∣+∣3−1∣=3。现在小红拿到了一个由 nnn 个整数组成的数组 {a1,a2,…,an};{a1,a2,…,an},她希望你将该数组重新排列,使得数组的陡峭值尽可能小。请你输出小红有多少种不同的排列方案使得数组的陡峭值最小,并输出这个最小值。
两个方案被视为不同的,当且仅当存在一个位置 iii 使得两个方案中 aia_iai 不同。
输入描述:
第一行输入一个整数 n(3≦n≦100)n;n(3≦n≦100) 代表数组中的元素个数。
{15pt}第二行输入 nnn 个整数 a1,a2,…,an(1≦ai≦100)a_1,a_2,a_i ;a1,a2,…,an(1≦ai≦100) 代表数组中的元素。
输出描述:
在一行上输出两个整数,分别代表小红有多少种不同的排列方案使得数组的陡峭值最小、这个最小值。
示例1
输入
3
1 2 2
输出
2 1
说明
在这个样例中,重新排列可以得到:
{1,2,2}\{1,2,2\}{1,2,2},此时的陡峭值为 ∣1−2∣+∣2−2∣=1|1-2|+|2-2|=1∣1−2∣+∣2−2∣=1;
∙{2,1,2}\{2,1,2\}{2,1,2},此时的陡峭值为 ∣2−1∣+∣1−2∣=2|2-1|+|1-2|=2∣2−1∣+∣1−2∣=2;
{2,2,1}\{2,2,1\}{2,2,1},此时的陡峭值为 ∣2−2∣+∣2−1∣=1|2-2|+|2-1|=1∣2−2∣+∣2−1∣=1;
综上,最小的陡峭值为 111,有 222 种不同的排列方案。