1979 第K个数

时间限制: 1 s
空间限制: 1000 KB
题目等级 : 黄金 Gold
 
 
 
 
题目描述 Description

给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数字减去第k小的数字的值m,并判断m是否为质数。(0<k<=n)

输入描述 Input Description

第一行为2个数n,k(含义如上题)
第二行为n个数,表示这个序列

输出描述
Output Description

如果m为质数则
第一行为'YES'(没有引号)
第二行为这个数m
否则 
第一行为'NO'
第二行为这个数m

样例输入
Sample Input

5 2
1 2 3 4 5
样例输出 Sample Output
YES
2
数据范围及提示 Data Size & Hint

20%数据满足0<n<=10
50%数据满足0<n<=5000
100%数据满足0<n<=10000

分类标签

Tags
点此展开

sort大法好!
 #include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define lli long long int
using namespace std;
const int MAXN=;
lli a[MAXN];
int comp(const int & a,const int & b)
{
return a>b;
}
int pd(int n)
{
if(n<)
{
return ;
}
for(int i=;i<=sqrt(n);i++)
{
if(n%i==)
return ;
}
return ;
}
int main()
{
lli n,m;
//scanf("%lld%lld",&n,&m);
cin>>n>>m;
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
}
sort(a+,a+n+,comp);
lli maxn=a[m];
sort(a+,a+n+);
lli minn=a[m];
lli ans=maxn-minn;
if(pd(ans)==)
{
printf("YES\n%lld",ans);
}
else
{
printf("NO\n%lld",ans);
}
return ;
}

1979 第K个数的更多相关文章

  1. codevs——1979 第K个数

    1979 第K个数  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给定一个长度为N(0<n<=10 ...

  2. codevs 1979 第K个数

     时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字 ...

  3. 剑指Offer面试题:27.最小的k个数

    一.题目:最小的k个数 题目:输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 这道题是典型的TopK问题,其最简单的思路莫过于 ...

  4. 算法系列:寻找最大的 K 个数

    Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...

  5. 算法练习:寻找最小的k个数

    参考July的文章:http://blog.csdn.net/v_JULY_v/article/details/6370650 寻找最小的k个数题目描述:查找最小的k个元素题目:输入n个整数,输出其中 ...

  6. 剑指Offer:面试题30——最小的k个数(java实现)

    问题描述: 输入n个整数,找出其中最小的k个数 思路1: 先排序,再取前k个 时间复杂度O(nlogn) 下面给出快排序的代码(基于下面Partition函数的方法) public void Quic ...

  7. 输入一个数组,求最小的K个数

    被这道题困了好久,看了剑指Offer才知道OJ上的要求有点迷惑性. 题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 一 ...

  8. 【编程之美】2.5 寻找最大的k个数

    有若干个互不相等的无序的数,怎么选出其中最大的k个数. 我自己的方案:因为学过找第k大数的O(N)算法,所以第一反应就是找第K大的数.然后把所有大于等于第k大的数取出来. 写这个知道算法的代码都花了2 ...

  9. 1046: 最小的K个数

    1046: 最小的K个数 时间限制: 1 Sec  内存限制: 128 MB提交: 233  解决: 200[提交][状态][讨论版] 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1 ...

随机推荐

  1. 洛谷 1131 [ZJOI2007]时态同步——树形dp

    题目:https://www.luogu.org/problemnew/show/P1131 因为越高,调节一个影响到的越多,所以底下只要把子树间的差异消除了就行了,与其他部分的差异由更高的边调节. ...

  2. Scala学习——类,继承,接口(中)

    基本类的使用:(初) package com.dtspark.scala.basics /** * trait是一个接口 * 接口的第一次继承用extends,多继承时用with * 多继承时,如果这 ...

  3. NSCLIENT++可以采集的指标

    Documentation   Information   Commands/Modules   CheckDisk   CheckFileSize   CheckDriveSize   CheckF ...

  4. 继承HibernateDaoSupport实现DAO(spring整合hibernate)

    转自:https://blog.csdn.net/yz9612/article/details/80234377 spring为hibernate的DAO提供工具类:HibernateDaoSuppo ...

  5. struts2的method=&quot;{1}&quot;

    这里的{1}表示接收前面action里通过通配符传来的值,例如你配置的是 ,然后调用***/editCrud.action,则method里获得的值是edit,将会调用这个action里面的 edit ...

  6. PHP中error_reporting()函数的用法(修改PHP屏蔽错误)

    一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的”懒人”很不方便,由于是初学者开始还想怎么在代 ...

  7. socket函数的使用方法(参数详解)

    socket函数的使用方法如下: int socket(int domain, int type, int protocol); 在参数表中,domain指定使用何种的地址类型,比较常用的有: PF_ ...

  8. 解决错误---undefined reference to `pthread_create‘

    今天试着敲了一下APUE的小例子,遇到了个错误 -----  undefined reference to `pthread_create.(为自己这么晚接触多线程惭愧). 上网上查了一下,借人经验. ...

  9. CodeForces - 828C String Reconstruction 并查集(next跳)

    String Reconstruction Ivan had string s consisting of small English letters. However, his friend Jul ...

  10. 移动构造和移动赋值与std::move

    ------------------------------------移动构造------------------------------------------ 传统的深拷贝深赋值 对于类中,含有 ...