HU-2323 SORT AGAIN
1511 ワード
http://acm.hdu.edu.cn/showproblem.php?pid=2523
ハッシュを勉強して、i++に注意してください。後は--iです。
SORT AGAIN
Time Limit:2000/1000 MS(Java/Others) メモリLimit:32768/32768 K(Java/Others)Total Submission(s):3479 Acceepted Submission(s):1107
Problem Description
N個の整数をあげます。x 1、x 2…xn、二つの整数の組み合わせを取ってもいいです。K番目の大きさの組み合わせはどれかを計算してください。
Input
入力データは、まず正の整数Cを含み、Cグループのテストケースを表す。各テストデータの最初の行は、2つの整数N,Kを含む。(1<N<=1000,0
Output
各グループのテストデータに対して、K番目の大きな組み合わせ数を出力してください。出力例は1ラインです。
Sample Input
3
3 2
4 0 7
4 2
1 2 3 4
2 1
2 9
Sample Output
4
2
7
ハッシュを勉強して、i++に注意してください。後は--iです。
SORT AGAIN
Time Limit:2000/1000 MS(Java/Others) メモリLimit:32768/32768 K(Java/Others)Total Submission(s):3479 Acceepted Submission(s):1107
Problem Description
N個の整数をあげます。x 1、x 2…xn、二つの整数の組み合わせを取ってもいいです。K番目の大きさの組み合わせはどれかを計算してください。
Input
入力データは、まず正の整数Cを含み、Cグループのテストケースを表す。各テストデータの最初の行は、2つの整数N,Kを含む。(1<N<=1000,0
Output
各グループのテストデータに対して、K番目の大きな組み合わせ数を出力してください。出力例は1ラインです。
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<algorithm>
#include<cstring>
using namespace std;
int main()
{
int t,n,k,i,a[2000],j,b[2000];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
memset(b,0,sizeof(b));
sort(a,a+n);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
b[a[j]-a[i]]=1;
i=0;
while(k!=0)
k-=b[i++];
printf("%d
",--i);// i++, --i;
}
return 0;
}