弱弱的问道acm水题,不知道哪里不对……(本人很菜)
http://acm.hdu.edu.cn/showproblem.php?pid=2523
Problem Description
给你N个整数,x1,x2...xn,任取两个整数组合得到|xi-xj|,(0<i,j<=N,i!=j)。
现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它)。
Input
输入数据首先包含一个正整数C,表示包含C组测试用例.
每组测试数据的第一行包含两个整数N,K。(1<N<=1000,0<K<=2000)
接下去一行包含N个整数,代表x1,x2..xn。(0<=xi<=2000)
Output
对于每组测试数据,请输出第K大的组合数,每个输出实例占一行。
Sample Input
3
3 2
4 0 7
4 2
1 2 3 4
2 1
2 9
Sample Output
4
2
7
Problem Description
给你N个整数,x1,x2...xn,任取两个整数组合得到|xi-xj|,(0<i,j<=N,i!=j)。
现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它)。
Input
输入数据首先包含一个正整数C,表示包含C组测试用例.
每组测试数据的第一行包含两个整数N,K。(1<N<=1000,0<K<=2000)
接下去一行包含N个整数,代表x1,x2..xn。(0<=xi<=2000)
Output
对于每组测试数据,请输出第K大的组合数,每个输出实例占一行。
Sample Input
3
3 2
4 0 7
4 2
1 2 3 4
2 1
2 9
Sample Output
4
2
7
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int c, n, k, i, j, temp;
int a[1001];
vector <int> b;
cin >> c;
while(c--){
cin >> n >> k;
for(i = 0; i < n; i++)
cin >> a[i];
for(i = 0; i < n; i++)
for(j =i + 1; j < n; i++)
{
temp = abs(a[i] - a[j]);
b.push_back(temp);
}
sort(b.begin(), b.end());
cout << b[b.size() - k] << endl;
b.clear();
}
return 0;
}
...全文


