http://acm.hdu.edu.cn/showproblem.php?pid=2523
3 3 2 4 0 7 4 2 1 2 3 4 2 1 2 9
4 2 7
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> using namespace std; int a[1005],b[2005],ans[2005]; int abs(int a,int b) { if(a>b)return a-b; else return b-a; } int main() { int t,n,k; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&a[i]); memset(b,0,sizeof(b)); for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) b[abs(a[i],a[j])]++; } int o=0; for(int i=0;i<2001;i++) { if(b[i]) ans[o++]=i; } cout<<ans[k-1]<<endl; }