SzNOI c016 : 寻找第K大数

来源:互联网 发布:海洋污染数据 编辑:程序博客网 时间:2024/06/05 19:54

这题想的跟题目要求不同导致不断的NA,在题目看来,相同大小的数字的排序也是不一样的,例如100 99 99 99 这四个数字,100是第一,99分别是第二第三第四,我的思路是99三个是重复应该并排第二,只能说坑了点。。

最近刷题都是随机做,随便点开一题做,没按顺序了

原题如下:


【问题描述】
N个小朋友在一起做游戏。
每个小朋友在自己的硬纸板上写一个数,然后同时举起来。
接着,小y老师提一个问题,看哪个小朋友先抢答出来。
问题是:在这N个数中,第K大的是哪个数?请你编程完成。
 
【输入格式】
输入文件的第一行为2个整数,依次为NKNK<=10000
下面N行,每行为一个整数,表示从第1个小朋友到第N个朋友分别写的数。假设这些小朋友只知道-32768~32767之间的数。
 
【输出格式】
输出文件只有一行,就一个数,为第K大的那个数。
 
【输入样例】
4 2
1
2
3
4
 
【输出样例】
3

代码部分如下,注释掉的部分是我的思路做的,如果题目要求是我的那种思路,那么就把注释去掉就行了


#include<algorithm>#include<iostream>using namespace std ;int main () {int n , k ; cin >> n ;cin >> k ;int cmp (int a ,int b ) ;int a[10000] ;for(int i = 0 ;i < n ;i++){cin >> a[i] ;}sort(a,a+n,cmp) ;/*for(int j = 0 ;j< n-1 ;j++) {for(int k = j+1 ; k < n ; k++) {if(a[k] == a[j]) {a[k] = -40000 ;}}}sort(a,a+n,cmp) ;*/cout << a[k-1] ;return  0 ;}int cmp (int a, int b ) {return a > b ;}



0 0