首页 > 其他 > 详细

SzNOI c016 : 寻找第K大数

时间:2015-02-09 21:42:46      阅读:384      评论:0      收藏:0      [点我收藏+]

这题想的跟题目要求不同导致不断的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 ;
}



SzNOI c016 : 寻找第K大数

原文:http://blog.csdn.net/hhooong/article/details/43675635

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!