题目:http://codeforces.com/problemset/problem/459/B
题意:
Pashmak小姑娘要种花,要求求出鲜花最大美丽差和选择花的方式的种类
题解:
进行sort排序,差异当然是最大的减去最小的咯,方式就是最大数的个数乘以最小数的个数咯,唯一注意的坑点
就是万一鲜花的美丽程度一样,那差异就是0了,方式就是n*(n-1)/2了
代码如下:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#define N 200005
#define LL long long
using namespace std;
int main()
{
LL n,a[N],i,t;
scanf("%I64d",&n);
for(i=0;i<n;i++)
scanf("%I64d",&a[i]);
sort(a,a+n);
LL sum1=1,sum2=1;
for(i=1;i<n;i++)
if(a[0]==a[i]) sum1++;
for(i=n-2;i>=0;i--)
if(a[n-1]==a[i]) sum2++;
if(sum1==n){
t=0;
printf("0 %I64d\n",n*(n-1)/2);
}
else{
printf("%I64d %I64d",a[n-1]-a[0],sum1*sum2);
}
return 0;
}