问题 M: 最亲密的x个人

时间限制: 1 Sec  内存限制: 128 MB
提交: 412  解决: 38
[提交] [状态] [命题人:jsu_admin]

题目描述

有一天,地球受到了降维打击,从三维变成了一维。从此我们都生活在一条线上,给这条线加上坐标,每个点都是大于等于 0 的正整数。

有一天小明突发奇想,想知道谁是他最亲密的人,距离小明越近的人和小明越亲密。

假设有 N 个人,每个人的编号为 i(1 <= i <= N ),坐标为 ki(k[i-1] <= k[i] <= k[i+1]),小明的坐标为 M(小明是 N 个人中的一个),你们可以帮助小明找到他最亲密的 X个人的编号吗?

输入

多组输入 
对于每组数据,第一行为三个整数N(0<N<=100000 )、M(0<M<=100000000)、X(X <= N && X <= 100)
第二行有N个数,分别表示 N 个人的坐标

 

输出

小明最亲密的 X 个人的编号(亲密度相同的,按id从小到大输出。如果第 x+1 个人和第 x 个人一样亲密,也需要输出)

样例输入 Copy

3 2 1
1 2 4
3 2 1
1 2 3

样例输出 Copy

1
1
3

定义一个结构体包含 x,id,dis dis 为到 m 的距离 然后排序,按距离小的排在前面, 距离相同 时编号小排前

输出前 x 个人即可,再判断第 x+1 个人的距离是否和第 x 个人一样,是的话输出,反 之不输出

 #include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio> //#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=+;
const int MOD=1e9+;
const double PI = acos(-1.0);
const double EXP = 1E-;
const int INF = 0x3f3f3f3f;
int t,n,m,k,q;
struct node{
int id,x;
bool operator <(const node &S)const{
if(x==S.x)
return id<S.id;
return x<S.x;
}
}a[N];
int main()
{ while(scanf("%d%d%d",&n,&m,&k)!=EOF){
for(int i=;i<=n;i++){
scanf("%d",&t);
a[i].id=i;
a[i].x=abs(t-m);
}
sort(a+,a+n+);
int cnt=;
t=;
while(cnt<k){
if(a[t].x!=){
//cnt++;
q=a[t].x;
while(q==a[t].x&&cnt<=k){
cout << a[t].id << endl;
t++;
cnt++;
}
}else{
t++;
} }
} //cout << "Hello world!" << endl;
return ;
}
 

最新文章

  1. Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
  2. java 方法参数-值调用,引用调用问题
  3. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成
  4. 山东理工大学第七届ACM校赛-飞花的鱼塘 分类: 比赛 2015-06-26 10:30 43人阅读 评论(0) 收藏
  5. PHP 生成指定大小随机图片
  6. java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.&lt;init&gt;(L
  7. kubernetes 报错汇总
  8. c#中的特性Attribute
  9. socket基础编程-1
  10. js设计模式(三)---代理模式
  11. JavaBasic_09
  12. IntellJ IDEA 2017 激活编译器配置,读取多个配置文件
  13. Oracle EBS OPM convert dtl reservation
  14. 网络构建入门技术(2)——IP子网划分
  15. mysql 查看某个库下面某个表的所有列字段, columnName
  16. 新购买的vps应该做的几件事情
  17. Vue 框架-07-循环指令 v-for,和模板的使用
  18. linux 基本配置tab键和显示行号 和中文输入法
  19. PHPCMS v9设置文章的审核功能
  20. javascript对字符串的常见操作trim,ltrim,rtrim,isEmpty,isFloat等

热门文章

  1. sqlserver数据库脱机和分离的区别
  2. linux运维、架构之路-实时同步方案
  3. CSS盒子模型中的Padding属性
  4. 配置 app.js 文件
  5. [HDU]P2586 How far away?[LCA]
  6. [CF938E]Max History题解
  7. jquery ajax实现文件上传
  8. Android内嵌网页webview点击其中的链接跳转到我们应用内的Activity
  9. UNR#3 Day1——[ 堆+ST表+复杂度分析 ][ 结论 ][ 线段树合并 ]
  10. java 线程池的创建方式