CODEVS——T1979 第K个数
生活随笔
收集整理的這篇文章主要介紹了
CODEVS——T1979 第K个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://codevs.cn/problem/1979/?
時間限制: 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個數,表示這個序列
如果m為質數則
第一行為'YES'(沒有引號)
第二行為這個數m
否則?
第一行為'NO'
第二行為這個數m
20%數據滿足0<n<=10
50%數據滿足0<n<=5000
100%數據滿足0<n<=10000
?
排序+素數
1 #include <algorithm> 2 #include <cstdio> 3 4 using namespace std; 5 6 #define LL long long 7 LL n,k,a[10000+15],ans; 8 9 bool jud(LL x) 10 { 11 for(LL i=2;i*i<=x;i++) 12 if(x%i==0) return 0; 13 return 1; 14 } 15 bool cmp(LL a,LL b) 16 { 17 return a>b; 18 } 19 20 int main() 21 { 22 scanf("%lld%lld",&n,&k); 23 for(int i=1;i<=n;i++) scanf("%lld",a+i); 24 sort(a+1,a+n+1); 25 ans-=a[k]; 26 sort(a+1,a+n+1,cmp); 27 ans+=a[k]; 28 if(ans<2||!jud(ans)) printf("NO\n"); 29 else printf("YES\n"); 30 printf("%lld",ans); 31 return 0; 32 }?
轉載于:https://www.cnblogs.com/Shy-key/p/7307601.html
總結
以上是生活随笔為你收集整理的CODEVS——T1979 第K个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++设计模式之简单工厂模式
- 下一篇: javaScript——廖雪峰老师学习笔