博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codevs——1979 第K个数
阅读量:6586 次
发布时间:2019-06-24

本文共 1376 字,大约阅读时间需要 4 分钟。

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 21 2 3 4 5
样例输出 
Sample Output
YES2
数据范围及提示 
Data Size & Hint

20%数据满足0<n<=10

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

 

思路:

sort然后判断素数

第四个测试点暴int 改成long long就过了 

代码:

#include
#include
#include
#include
#include
#define N 10010using namespace std;long long s,s1,s2,n,m,a[N],prime[N];long long read(){ long long x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-') f=-1; ch=getchar();} while(ch>='0'&&ch<='9') {x=x*10+ch-'0'; ch=getchar();} return x*f;}long long pd(long long x){ for(long long i=2;i*i<=x;i++) if(x%i==0) return false; return true;}int main(){ n=read(),m=read(); for(long long i=1;i<=n;i++) a[i]=read(); sort(a+1,a+1+n); s1=a[m];s2=a[n-m+1]; s=s2-s1; if(s<=0) {printf("NO\n%d",s);return 0;} if(pd(s)) printf("YES\n%d",s); else printf("NO\n%d",s);}

 

转载于:https://www.cnblogs.com/z360/p/7307544.html

你可能感兴趣的文章
在fmri研究中,cca的应用历史
查看>>
[转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】...
查看>>
[Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面
查看>>
Apache mod_rewrite规则重写的标志一览
查看>>
不要让Javascript的等价表格看上去那么难看
查看>>
js作为参数,并且返回值;js的回调模式 callback
查看>>
filestream streamreader
查看>>
优秀博文
查看>>
Ckeditor 的加载顺序
查看>>
java内存模型(netty权威指南)
查看>>
Fragment问题集
查看>>
NSNotificationCenter详解
查看>>
【javascript】浮点数运算问题分析及解决方法
查看>>
TQ2440实现触摸屏和qt图形 解决segmentation fault
查看>>
HBase的JavaAPI使用
查看>>
Debian GNU/kFreeBSD是什么
查看>>
使用base64:url 来定义背景图片url
查看>>
Oracle事务隔离级别
查看>>
PNG文件格式具体解释
查看>>
WebService注解
查看>>