zoukankan      html  css  js  c++  java
  • 问题 M: 最亲密的x个人

    问题 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 个人一样,是的话输出,反 之不输出

     1 #include <bits/stdc++.h>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstdlib>
     5 #include<cstring>
     6 #include<cstdio>
     7 
     8 //#define DEBUG
     9 #define RI register int
    10 using namespace std;
    11 typedef long long ll;
    12 //typedef __int128 lll;
    13 const int N=100000+10;
    14 const int MOD=1e9+7;
    15 const double PI = acos(-1.0);
    16 const double EXP = 1E-8;
    17 const int INF = 0x3f3f3f3f;
    18 int t,n,m,k,q;
    19 struct node{
    20     int id,x;
    21     bool operator <(const node &S)const{
    22         if(x==S.x)
    23             return id<S.id;
    24         return x<S.x;
    25     }
    26 }a[N];
    27 int main()
    28 {
    29 
    30     while(scanf("%d%d%d",&n,&m,&k)!=EOF){
    31         for(int i=1;i<=n;i++){
    32             scanf("%d",&t);
    33             a[i].id=i;
    34             a[i].x=abs(t-m);
    35         }
    36         sort(a+1,a+n+1);
    37         int cnt=0;
    38         t=1;
    39         while(cnt<k){
    40             if(a[t].x!=0){
    41                 //cnt++;
    42                 q=a[t].x;
    43                 while(q==a[t].x&&cnt<=k){
    44                     cout << a[t].id << endl;
    45                     t++;
    46                     cnt++;
    47                 }
    48             }else{
    49                 t++;
    50             }
    51  
    52         }
    53     }
    54  
    55     //cout << "Hello world!" << endl;
    56     return 0;
    57 }
    View Code
     
  • 相关阅读:
    IntelliJ IDEA Community Edition 14.1.4下使用 Apache-Subversion搭建代码管理环境
    Eclipse+SVN搭建开发环境
    查看分区表中分区详细信息
    asp.net mvc 后台怎么接受前端返回的array list dictionary
    jquery 操作select
    asp.net mvc4 System.Web.Optimization找不到引用
    asp.net mvc4 设置build项目时,编译view页面
    c# ConfigurationSection
    Array基本操作
    For,Function,Lazy
  • 原文地址:https://www.cnblogs.com/DWVictor/p/10202525.html
Copyright © 2011-2022 走看看