目录

牛客周赛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 种不同的排列方案。