Codeforces 479【C】div3

题目链接:http://codeforces.com/problemset/problem/977/C

题意:给你n个数字,输出任意一个数字,这个数字刚好大于等于,序列里面k个数字。

题解:排个序,第k个数就是所求。注意几个坑点。k == 0的时候,你要看答案是不是能等于1。

比如

2 0

2 3 

这个样例,就可以为1呀。QWQ懂了吧。WA,test4可能就在这儿。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 const int maxn = 1e5;
 5 #define ll long long
 6 
 7 int a[maxn*2+5];
 8 int main(){
 9     int n,k;
10     cin>>n>>k;
11     for(int i = 0; i < n; i++){
12         cin>>a[i];
13     }
14     sort(a,a+n);
15     if(k == 0){
16         if(a[0] > 1){
17             cout<<1<<endl;
18         }
19         else{
20             cout<<-1<<endl;
21         }
22         
23         return 0;
24     }
25     if( k == n){
26         cout<<a[n-1]<<endl;
27         return 0;
28     } 
29     
30     ll num;
31     num = a[k-1];
32     if(num >= a[k]){
33         cout<<-1<<endl; 
34     }
35     else{
36         cout<<num<<endl;
37     }
38     
39     return 0;
40 }
View Code
原文地址:https://www.cnblogs.com/Asumi/p/9005554.html