现在给你n个数字xi,请你分别从中选m个数字组成两个m位数,要求这两个数的差最大,并输出这个差。2<=n<=100,1<=m<=17,0<=xi<=9,m<=n。
输入格式
第一行,两个数,n和m。
第二行,n个数字。
输出格式
一个整数
输入/输出例子1
输入:
4 3
1 1 2 3
输出:
209
样例解释
n个数字中保证至少1个非0。两个m位数所选的数字不一定要全部相同。
注意:组成的m位数必须满足首位不是0(一位数除外)
```c++
#include<bits/stdc++.h>
const int N=1e9;
using namespace std;
int a[100001]={},n,c;
int fun(int mid){
int x=0,s=0;
for(int i=2;i<=n;i++)
if(a[i]-a[x]>mid){
s++;
x=i;
}
return s;
}
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
int l=0,r=N,mid;
sort(a+1,a+n+1);
while(l<=r){
mid=(l+r)/2;
int s1=fun(mid);
if(s1>=c) l=mid+1;
else r=mid-1;
}
printf("%d",l);
}