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 }