#include <stdio.h> #define

#include <stdio.h>
#define SIZE 10
int main() 
{
	int data[SIZE], i, j, cnt, n, m;// 定义 // 
	scanf("%d %d\n", &n, &m);// 输入 n 和 m,此处我们输入的是 5 和 2//
	for(i = 1; i <= n; i++)
		scanf("%d", &data[i]);// 再次输入 i 个数 data[1] =96 data[2]=-8 data[3]=0 data[4]=16 data[5]=87//
	for(i = 1; i <= n; i++) 
	{ //n=5//
		cnt = 0;
		for(j = 1; j<= n; j++)//n=5 ,data[1] =96 data[2]=-8 data[3]=0 data[4]= 16
		data[5]=87//
		if ((data[i] < data[j]) || (data[j] == data[i] && j< i))// 如果说 data[i]<data[j] ,或者说{data[j] 等于 data[i] ,同时 j 小于 i
		cnt++;//cnt 的数目加 1// 
		if(cnt == m)// 如果说 cnt 等于 m 等于 2,因为 cnt=2 ,即整个程序运行了两遍,也运行两遍,换句话说,只有恰好运行两遍的数字才能满足题意。假设, data[1]=96 ,与
		data[2]=-8 data[3]=0 data[4]= 16 data[5]=87 //比较大小时, 显然为最大, 不能比其他的数小,不满足条件 data[i] < data[j] ,同样, data[2]=-8 ,比它大的数有 3 个也不满足题意,
		data[3]=0 //比它大的数有 4 个,不合题意 data[4]= 16 ,比它大的数恰恰只有两个,满足题意,为所输出 //
		printf("%d\n", data[i]);// 输出 data[i]//
	}
	getch(); //(此语句在 windows 2000 以上系统用 winTC 编译 C 时需要加入,用以暂停查看屏幕)
	return 0;
}

输入: 5 2 

 96 -8 0 16 87 

输出: ______

答案
第1空:16

题目信息

题号:6554
题型:填空题
知识点:NOIP真题
难度:普通