水题,和hdu1280互为逆向,不过这个是多个相同数字算一个。
我是hdu1280题解的传送门:Hdu1280 - 前m大的数 - 哈希
#include<stdio.h>
#include<string.h>
int sum[2005];
int num[2005];
int abs(int a)
{
return a>0?a:-a;
}
int main()
{
int t;
int m,n;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
memset(sum,0,sizeof(sum));
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
sum[abs(num[i]-num[j])]=1;
}
}
int item=0;
for(int i=0;i<=2000;i++)
{
for(int j=0;j<sum[i];j++)
{
item++;
if(item==m)
{
break;
}
}
if(item==m)
{
printf("%d\n",i);
break;
}
}
}
}
}