您的位置:首页 > 大数据 > 人工智能

2017 Multi-University Training Contest - Team 5 Rikka with Competition

2017-08-18 16:13 375 查看
http://acm.hdu.edu.cn/showproblem.php?pid=6095

题意:

  给出n个数,进行n−1场比赛,每场比赛如果双方差值的绝对值大于k,那么数值较大的人赢,否则都有可能赢,现在要你求最后最多有多少人可能赢。

思路:

  先把值排个序,然后判差值是否大于k,第一次大于k之前的数的个数就是答案。

  

代码:

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int main(){
int n,k;
int T;
while(~scanf("%d",&T)){
while(T--){
scanf("%d %d",&n,&k);
for(int i = 0;i < n;i++){
scanf("%d",&a[i]);
}
int ans = n;
sort(a,a + n);
for(int i = n - 1;i >= 0;i--){
if(a[i] - a[i - 1] > k){
ans -= i;
break;
}
}
printf("%d\n",ans);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐